ZK国际化:UNICODE而不是重音字符

时间:2016-11-21 15:23:55

标签: java internationalization zk unicode-escapes

我的应用程序使用标签进行国际化。

在所有页面中,重音字符显示为unicodes。如,

à ---> \u00E0

我不知道哪个问题可能出现,我无法找到有关此主题的任何有用文档:我只找到http://forum.zkoss.org/question/14643/internationalization-accent-characters/?answer=101862#post-id-101862,但所有建议的链接都已消失。

使用Eclipse ResourceBundle Editor编辑属性文件,该编辑器将重音字母保存为unicode:我不知道为什么重音字符呈现为\ uXXXX。

提前感谢您的合作。

2 个答案:

答案 0 :(得分:1)

最后我解决了这个问题。

这只是一个编码问题,正如chillworld和其他论坛中的其他人所说的那样(感谢你以正确的方式驾驶我!)。

我必须实施多项技巧才能让我的应用程序正常运行:

  1. .properties个文件重命名为.labels:这是因为Eclipse假定所有属性文件都是ISO-8859-1编码的,如果您想确保它保留了您的编码,那么重命名它。最重要的是,确保文件是UTF-8编码的(在文件上右键单击Eclipse,单击'属性',编码在最后一行)。要修改编码,您可以使用外部编辑器(SublimeText,UltraEdit,Geany,gedit,...)或在Eclipse中转到Edit->Set Encoding并选择UTF-8。

  2. 避免使用ResourceBundle Editor eclipse插件或其他属性编辑器(如JBoss Properties Editor):问题是它们会自动将重音字母转换为转义的unicode序列,因为它们假定属性文件是ISO-8859-1编码。

  3. 将所有出现的unicode序列替换为相应的字符(例如,将\u00E0替换为à,依此类推......)。

  4. 最后,重新启动Tomcat:它应该可以工作。

答案 1 :(得分:0)

你有没有费心检查ZK的I18N文件?

以下是它的前三行:

  

# “字符集= UTF-8”
  #CIED于2006年9月21日,由JérômeVerrereau执导   #Copyright(C)2006 Potix Corporation

如您所见,它保存为UTF-8而不是unicode,因此请尝试使用UTF-8作为编码。