2010-07-09 64 views
3

我有一个我尝试本地化的JavaFX/Groovy应用程序。Java webstart字符编码问题

事实证明,当我在本地使用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访问记住牛奶REST风格的Web服务。所有有问题的文本都将来自检索到的数据(如任务名称),实际上并不是以二进制或文本形式存储在磁盘上。很奇怪“-Dfile.encoding = UTF-8”会在本地修复它。

+0

事实证明,你只能在JNLP中指定某些“幸运”的虚拟机参数。不被视为“安全”的参数被忽略。请参阅http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html#resources以获取可用的列表 – 2010-07-13 22:00:11

回答

4

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

+0

希望更新我的问题关于我如何处理文本的足够信息。干杯。 – 2010-07-09 15:36:32