属性文件中的中文字符未正确解码

时间:2015-06-13 02:02:43

标签: java spring jsp encoding

我在中文和英文中使用了本地化的应用程序。它是一个Spring MVC应用程序,我从属性文件中获取值。我已经用UTF-8对JSP页面进行了编码,并在web.xml中也提到了UTF-8编码。

如果我在JSP页面中对中文字符进行硬编码,则会正确显示,但来自属性文件的字符会出现乱码并显示为ç§ç®å称

当我做错了?

1 个答案:

答案 0 :(得分:2)

问题是Java属性文件是/必须/应该在'ISO-8859-1'(Latin-1)中默认编码。这是一个Java要求。

要克服这个问题,你可以采取两种方式:

  • 通过属性文件中的UTF-8序列转义非Latin-1字符:back=Zur\u00EF\u00BF\u00BDck(德语单词(“Zurück”),其中一些没有Latin-1字符)

  • 或者您使用UTF-8对属性文件进行编码,并操纵Spring加载属性文件的方式。

我会采用第一种方式(更标准) - 然后我建议使用像ResourceBundle Editor这样的工具(它可以编码)

@参见这个问题及其答案: