一尘不染

如何在RESTeasy中将编码设置为UTF-8?

tomcat

我在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上运行。

谢谢!


阅读 227

收藏
2020-06-16

共1个答案

一尘不染

这不是关于resteasy或jax-rs mate。

您可能需要研究以下几件事:

  1. 如果数据来自数据库,则需要确保数据库中的数据已正确编码。
  2. 您的JVM环境正在使用utf8进行编码
  3. 这可能是IDE的问题,因为IDE和您的tomcat可能在不同的配置上运行。
2020-06-16