代码之家  ›  专栏  ›  技术社区  ›  Eric Wendelin

Java WebScript字符编码问题

  •  3
  • Eric Wendelin  · 技术社区  · 15 年前

    我有一个javafx/groovy应用程序正在尝试本地化。

    事实证明,当我使用JavaFX标准执行时,JavaVM ARG“-dFord.Cuffice=UTF-8”在本地,所有我的国际字符(例如,γ)都显示正确。

    但是,如果我通过JNLP文件调用应用程序,使用Java VM ARGs=“-dFr.Cordy= UTF-8”,例如

    <resources>
        <j2se version="1.6+" java-vm-args="-Dfile.encoding=UTF-8"/>
        ...other stuff...
    </resources>
    

    应用程序将国际字符显示为其他随机字符(如)。

    我是否在JNLP中错误地指定了文件编码,或者标准执行和WebStart之间是否存在影响这一点的差异?

    非常感谢。

    编辑:我使用一个groovyAPI来访问remember the milk-restful web服务。所有有问题的文本都将来自检索到的数据(如任务名),而不是以二进制或文本的形式存储在磁盘上。奇怪的是“-dfile.encoding=utf-8”会在本地修复它。

    1 回复  |  直到 10 年前
        1
  •  4
  •   Jon Skeet    15 年前

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

    推荐文章