我有一个 JSP,它应该通过使用 fmt:message 显示某些 .properties 文件中的一些德语文本,例如
.properties 文件中对应的条目是: service.test.hware.test = 硬件测试 (第二个单词中 r 和 f 之间的变音)。
在 Internet Explorer 上显示为:
硬件优化
变音符号被损坏。关于这里发生的事情有什么想法吗?请注意,我们使用的是 Spring MVC。
最佳答案
ü¼
是典型的源自 UTF-8 的 ü
被错误地编码为 ISO-8859-1 而不是 UTF-8。这是程序化的证据:
System.out.println(new String("ü".getBytes("UTF-8"), "ISO-8859-1")); // ü
既然您提到属性文件中的相同字符在某些 JSP 中工作正常,但在其他 JSP 中则不行,那么这意味着浏览器未被那些 JSP 正确指示使用 UTF-8 来显示字符由服务器返回。
此指令发生在 HTTP Content-Type
header 中。使用任何 HTTP header 调试工具,您必须能够确定返回的 header 。一种流行的工具是 Firebug .
注意 charset=utf-8
的存在。
通常,在 JSP 中,这是通过简单地将以下行放在 JSP 文件的顶部来实现的:
<%@ page pageEncoding="UTF-8" %>
另见:
关于java - 国际化 : Umlaut not being displayed correctly in JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816719/