3

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

4

1 回答 1

4

我强烈建议您在将文本转换为二进制的任何地方都明确指定编码,反之亦然。依赖 JVM 默认值——即使在你设置了默认值之后——对我来说也不是一个好主意。您还没有真正说出您对文本所做的事情,但是如果您在保存或加载时明确设置编码,那应该没问题。

于 2010-07-09T15:13:20.853 回答