【发布时间】:2013-01-18 23:19:21
【问题描述】:
我在 RESTeasy 中编码字符串时遇到问题。问题是无法正确显示中文字母或任何其他非拉丁字符。如果我尝试将它们打印出来(或作为响应发送),我会得到“?????”反而。 我相信 RESTeasy 中的默认编码是 us-ascii。您知道如何将其更改为 UTF-8 吗?也许这个问题还有其他解决方案?
这是我的代码中的一小段:
@POST
@Path("post")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String uploadData(@MultipartForm DataUploadForm uploadForm) {
...
//the code below is just for the purpose of presentation
String text = "some non-latin alphabet signs here"
System.out.println(text); // "??????" is printed out
return text; //"??????" is returned
}
我的 resteasy-jaxrs-3.0-beta-2 在 Tomcat 7.0 上运行。
谢谢!
【问题讨论】:
-
应该有
@Produces的注解吗? (可能在班级级别。) -
谢谢,我会试试的,但我想知道这个注释是否会影响方法内部发生的事情(在产生输出之前)?换句话说,它能让 System.out.println 显示正确的字符吗?
-
如果
System.out.println()编码是您唯一的实际问题,那么您基本上需要在负责呈现标准输出的一侧配置它。如果它是例如 Eclipse,那么请前往这个答案:stackoverflow.com/questions/13452324/… 请注意,这与 Tomcat/Servlets/JAX-RS/RESTeasy完全无关。
标签: tomcat servlets jax-rs resteasy