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

谢谢!

最佳答案

这与resteasy或jax-rs mate无关。

检查 this post

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

  • 如果数据来自 DB,那么您需要确保 DB 中的数据正确编码。
  • 您的 JVM 环境正在使用 utf8 进行编码
  • 这可能是 IDE 的问题,因为 IDE 和您的 tomcat 可能运行在不同的
    配置。
  • 关于tomcat - 如何将 RESTeasy 中的编码设置为 UTF-8?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14683677/

    10-15 17:11