我的 Web 应用程序 (Java/Tomcat/Spring/Maven) 在处理特殊字符时遇到问题,例如 ’
(十六进制 92,十进制 146)。这作为另一个奇怪的角色进入我的应用程序。
我看过this question并确认我的所有 JSP 文件中都有以下行:
<%@ page contentType="text/html; charset=UTF-8" %>
我也看了this question并验证我的 Maven pom.xml 中有以下行:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
据我所知,一切都应该用 UTF-8 构建和处理。但是,当我提交字符串 Martin's Auto Repair
时,在 Spring 绑定(bind)过程中服务器上显示的是 Martinâ\u0080\u0099s Auto Repair
。这是 Tomcat 返回给我的应用程序的字符串。
更糟糕的是,这会回显给浏览器,因此再次提交更改后的字符串会一遍又一遍地扩展奇怪的字符。
有什么建议吗?此时我不确定这是浏览器问题还是服务器问题。
最佳答案
十六进制 92 不是 Unicode 中的字符 ( http://en.wikibooks.org/wiki/Unicode/Character_reference/0000-0FFF )
Windows 代码页 1252 与 Unicode 并非 100% 相同。
关于java - Spring/Tomcat 不支持 UTF-8 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22049848/