有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaZK国际化:UNICODE代替重音字符

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

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

à ---> \u00E0

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

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

提前感谢您的合作


共 (2) 个答案

  1. # 1 楼答案

    你有没有检查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作为编码

  2. # 2 楼答案

    最后我解决了这个问题

    这只是编码问题,正如chillworld和其他论坛的其他人所说的那样(谢谢你让我走上了正确的道路!)

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

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

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

    3. 将所有出现的unicode序列替换为相应的字符(例如,将\u00E0替换为à,等等…)

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