JavaZK国际化:UNICODE代替重音字符
我的应用程序使用标签进行国际化
在所有页面中,重音字符显示为Unicode。例如:
à ---> \u00E0
我不知道哪个是问题所在,也找不到任何关于这个主题的有用文档:我只找到了http://forum.zkoss.org/question/14643/internationalization-accent-characters/?answer=101862#post-id-101862,但所有建议的链接都没有了
属性文件是使用Eclipse ResourceBundle编辑器编辑的,该编辑器将重音字母保存为unicode:我不知道为什么重音字符被呈现为\uxxx
提前感谢您的合作
# 1 楼答案
你有没有检查ZK的I18N文件
以下是它的前3行:
如您所见,它保存为UTF-8而不是unicode,因此请尝试将UTF-8作为编码
# 2 楼答案
最后我解决了这个问题
这只是编码问题,正如chillworld和其他论坛的其他人所说的那样(谢谢你让我走上了正确的道路!)
我必须实施多种技巧才能使我的应用程序正常工作:
将
.properties
文件重命名为.labels
:这是因为Eclipse假定所有属性文件都是ISO-8859-1编码的,如果您想确保它保留您的编码,就必须对其进行重命名。最重要的是,确保文件是UTF-8编码的(在Eclipse中右键单击文件,单击“属性”,编码在最后一行)。要修改编码,可以使用外部编辑器(SublimitText、UltraEdit、Geany、gedit等)或者在Eclipse中转到Edit->Set Encoding
并选择UTF-8避免使用ResourceBundle编辑器eclipse插件或其他属性编辑器(如JBoss属性编辑器):问题在于,它们会自动将重音字母转换为转义unicode序列,因为它们假定属性文件是ISO-8859-1编码的
将所有出现的unicode序列替换为相应的字符(例如,将
\u00E0
替换为à
,等等…)最后,重新启动Tomcat:它应该可以工作