2011-05-03 35 views
2

我有簡單的新澤西州的REST Web服務:新澤西州的REST WS - 請求體UTF-8

@POST 
@Path("/label") 
@Consumes(MediaType.TEXT_HTML)  
public Response setLabels(String requestBody) { 
    System.out.println(requestBody); 
...... 
} 

請求通過一些文字與 「特殊」 的非英文字符

[{"За обекта"}] 

我可以在Firebug看該請求與正確UTF-8含量傳遞和charset

Content-Type text/plain; charset=UTF-8 

雖然對服務器輸出不呈現期望ç harset:

[{"?? ??????"}] 

任何想法什麼和出了錯?如何在服務器端以正確的字符集捕獲文本?

+0

這屬於SO。 – 2011-05-03 16:51:57

回答

1

System.outPrintStream。它使用平臺默認編碼,通常不是UTF-8。所以你正在獲取正確的數據,當你將它打印到控制檯時,它會變得很糟糕。

幾周前,我的確遇到了同樣的問題 - 把我搞砸了,直到我明白了。更糟糕的是,我實際上在代碼的另一部分有與編碼相關的錯誤。

+0

確實值通過REST正確傳遞,所以它只是表示問題。 – user645055 2011-05-04 09:31:22

相關問題