为什么 UTF8 字符编码在我的项目中不能正常工作?
Why UTF8 character encoding doesn't work properly in my project?
我正在 Wildfly 10 应用程序服务器下的 Spring 框架中开发 Web 应用程序。我使用 Eclipse IDE.
我遇到了无法解决的字符编码问题:当我将某些字符从服务器端发送到客户端时,它们无法正确显示。
我使用的测试 String
对象是“árvíztűrő tükörfúrógép
”
- 当我从数据库中读取值并将其发送到客户端时,一切正常。
- 当我将控制器中的字符串值设置为 ModelAndView 对象时,它显示为 '??rv?zt?±r?? t??k?¶rf??r??g?©p'
- 当我通过 ajax 从客户端发送值作为 POST 变量并将其发送回客户端时,它显示为 'árvízt?r? tükörfúrógép'.
我将所有 .jsp 文件设置为 UTF8 编码:<%@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>
经过将近 2 个月的搜索,我找到了解决问题的方法。除了配置服务器和 Spring,我还需要添加两件事:
在我的 Maven 项目的 Web 模块上,我必须设置源的字符编码:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
另外,当我向客户端发送 JSONObject
时,我必须设置字符编码:
@RequestMapping(value = "/historyContent.do", produces = { "application/json; charset=UTF-8" })
终于看到我想要的了。
我正在 Wildfly 10 应用程序服务器下的 Spring 框架中开发 Web 应用程序。我使用 Eclipse IDE.
我遇到了无法解决的字符编码问题:当我将某些字符从服务器端发送到客户端时,它们无法正确显示。
我使用的测试 String
对象是“árvíztűrő tükörfúrógép
”
- 当我从数据库中读取值并将其发送到客户端时,一切正常。
- 当我将控制器中的字符串值设置为 ModelAndView 对象时,它显示为 '??rv?zt?±r?? t??k?¶rf??r??g?©p'
- 当我通过 ajax 从客户端发送值作为 POST 变量并将其发送回客户端时,它显示为 'árvízt?r? tükörfúrógép'.
我将所有 .jsp 文件设置为 UTF8 编码:<%@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>
经过将近 2 个月的搜索,我找到了解决问题的方法。除了配置服务器和 Spring,我还需要添加两件事:
在我的 Maven 项目的 Web 模块上,我必须设置源的字符编码:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
另外,当我向客户端发送 JSONObject
时,我必须设置字符编码:
@RequestMapping(value = "/historyContent.do", produces = { "application/json; charset=UTF-8" })
终于看到我想要的了。