Iva*_*vov 1 java eclipse localization internationalization web
我正在开发一个 Java Web 应用程序,它现在处于开发的最后阶段,剩下的事情之一就是本地化。我们正在为每个受支持的语言环境使用属性文件。我发现的问题是某些 unicode 字符在 Web 浏览器中没有正确显示。网页在字符集元标记中指定了 UTF-8 编码,并且浏览器已正确检测到它(在 Firefox View->Character Encoding 中似乎选择了正确的编码)。我相信这个问题来自这样一个事实,即当应用程序将文本显示为 UTF-8 时,属性文件以 ISO*xxxx 编码保存,这恰好是一些 eclipse 默认设置。
我在这里发现了一个类似的问题:Eclipse 中的 Java 属性 UTF-8 编码,它建议我安装 Resource Bundle Plug-in。我安装并使用插件编辑相应的属性,但我仍然有问题。
是否有一个快速的解决方案(我的意思是一个不会对应用程序造成太多变化的解决方案,因为它已接近完成阶段)可以克服我遇到的问题。
也许我应该提到我正在使用 Firefox 7 在 Ubuntu Linux 操作系统下开发和观察问题。提前致谢。
编辑:我没有提到重要的事情。我的用户界面是用 GWT 编写的,属性由一个接口公开,该接口在 GWT 用于在内部创建该接口的实现并链接到相应属性的 getter 上有注释。所以我想我对如何实际读取属性没有太多控制,或者至少我不知道如何在 GWT 中做到这一点。
Java 属性文件采用 ISO 8859-1 (Latin 1) 编码。其他字符必须使用转义的 Unicode 表示。
因此,您不应将拉丁文 1 之外的 Unicode 字符直接输入到您的本地化文件中。此类字符应作为 Unicode 转义输入。
如果您有一堆 UTF-8(或其他)编码的属性文件,您可以使用JDK 中的native2ascii工具将这些文件转换为拉丁语 1 转义的 unicode 。此外,Ant 有一个native2ascii 任务。
其他海报指出了解决此问题的方法。但就我个人而言,我更愿意坚持属性资源文件中的标准编码 - 这样它就可以处理所有事情。没有什么可以阻止您以 UTF-8 编码创作文件并将它们转换为拉丁语 1 转义的 unicode 作为构建的一部分(例如 Ant 任务)。