我正在Wildfly 10应用程序服务器下的Spring Framework中开发Web应用程序。我使用Eclipse IDE。
我遇到了无法解决的字符编码问题:从服务器端发送到客户端时,某些字符显示不正确。
我使用的测试String
对象是“ árvíztűrő tükörfúrógép
”
当我从数据库中读取该值并将其发送到客户端时,一切似乎都很好。
当我在Controller中将String值设置为ModelAndView对象时,它显示为“ ?? rv?zt?±r ??”。 t ?? k?¶rf?? r ?? g?©p'
当我通过ajax从客户端发送值作为POST变量并将其发送回客户端时,它显示为“árvízt?r?”。 tükörfúrógép'。
我设置了所有编码UTF8的.jsp文件:<%@page contentType="text/html" pageEncoding="UTF-8"%>
在Eclipse中,我将所有Maven模块文本文件编码都设置为UTF8。所有文件都在UTF8中。
我错过了什么?为了在客户端获得String
值,我还应该设置什么?我应该以某种方式在Wildfly 10中设置字符编码吗?
有人可以帮我吗?如果您需要更多信息,请随时询问。谢谢。
编辑:将字符编码设置为Maven属性解决了第二种情况。现在,我只遇到第三种情况的问题:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
最佳答案
经过近两个月的搜索,我能够找到解决问题的方法。除了配置服务器和Spring,我还需要添加两点:
在我的Maven项目的Web模块上,我必须设置源代码的字符编码:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
另外,当我发送JSONObject
到客户端时,我必须设置字符编码:@RequestMapping(value = "/historyContent.do", produces = { "application/json; charset=UTF-8" })
最后,我可以看到我想要的。