2011-05-03 61 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

相关问题