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

ZK internationalization: UNICODE instead of accented character

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

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

à ---> \u00E0

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

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

在此先感谢您的合作。

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

这是它的前 3 行:

#"charset=utf-8"
#Created on Sept 21, 2006, by Jérôme Vergereau
#Copyright (C) 2006 Potix Corporation

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

最后我解决了这个问题。

这只是一个编码问题,正如 chillworld 和其他论坛中的其他人所说(感谢引导我走上正确的道路!)。

我必须实施多种技巧才能让我的应用程序正常工作:

  1. .properties 文件重命名为 .labels:这是因为 Eclipse 假设所有属性文件都是 ISO-8859-1 编码的,如果您想确保它保留你的编码你必须重命名它。最重要的是,确保文件是 UTF-8 编码的(在 Eclipse 中右键单击文件,单击 'Properties',编码在最后一行)。要修改编码,您可以使用外部编辑器(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:应该可以了。