我有一个JavaFX / Groovy应用程序,我正在尝试本地化。
事实证明,当我在本地使用Java VM arg“-Dfile.encoding = UTF-8”执行JavaFX标准时,我的所有国际字符(例如,ü)都会正确显示。
但是,如果我通过JNLP文件调用应用程序,请使用java-vm-args =“ - Dfile.encoding = UTF-8”,例如
<resources>
<j2se version="1.6+" java-vm-args="-Dfile.encoding=UTF-8"/>
...other stuff...
</resources>
该应用程序将国际字符显示为几个其他随机字符(如√¬)。
我是否在JNLP中错误地指定了文件编码,或者标准执行和Webstart之间是否存在一些影响此问题的区别?
非常赞赏。
编辑:我使用Groovy API访问Remember The Milk RESTful Web服务。所有有问题的文本都将来自检索到的数据(如任务名称),并且实际上并不是以二进制或文本形式存储在磁盘上。奇怪的是“-Dfile.encoding = UTF-8”实际上会在本地修复它。
答案 0 :(得分:4)
我强烈建议您显式指定编码,无论您将文本转换为二进制,还是反之亦然。依赖JVM默认 - 即使你设置了默认值 - 对我来说也不是一个好主意。你还没有真正说过你正在用文本做什么,但是如果你在保存或加载时明确设置了编码,它应该没问题。