java - 国际化 : Umlaut not being displayed correctly in JSP

标签 java jsp unicode spring-mvc character-encoding

我有一个 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 .

alt text

注意 charset=utf-8 的存在。

通常,在 JSP 中,这是通过简单地将以下行放在 JSP 文件的顶部来实现的:

<%@ page pageEncoding="UTF-8" %>

另见:

关于java - 国际化 : Umlaut not being displayed correctly in JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816719/

相关文章:

java - 如何使用共享对象创建 SOAP 客户端

java - 用于读写java的线程

java - 如何实现可移植的 JPA isDirty() 方法?

javascript - 在 textarea 值更改上启用按钮

ruby - ruby 的正确 utf-8 编码注释行是什么?

iOS 字体无法正确显示所有 Unicode 字符

java - 类路径资源 [spring/config/BeanLocations.xml] 无法打开,因为它不存在

jsp - 服务器控制或同步网络幻灯片放映?

java - 推荐模板引擎,减少动态内容冗余(Spring Boot)

php - 如何在 PHP 中从 Unicode 转换表情符号?