Java webstart字符编码问题

时间:2010-07-09 15:10:13

标签: java utf-8 javafx jnlp

我有一个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”实际上会在本地修复它。

1 个答案:

答案 0 :(得分:4)

我强烈建议您显式指定编码,无论您将文本转换为二进制,还是反之亦然。依赖JVM默​​认 - 即使你设置了默认值 - 对我来说也不是一个好主意。你还没有真正说过你正在用文本做什么,但是如果你在保存或加载时明确设置了编码,它应该没问题。