2010-07-09 2 views
3

У меня есть приложение JavaFX/Groovy, которое я пытаюсь локализовать.Проблемы с кодировкой символов Java webstart

Оказалось, что при использовании стандартного исполнения JavaFX с Java VM arg -dfile.encoding = UTF-8 локально отображаются все мои международные символы (например, ü).

Однако, если я вызываю приложение через JNLP-файл, используя java-vm-args = "- Dfile.encoding = UTF-8", например.

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

Приложение показывает международные символы как пару других случайных символов (например, √¬).

Я неправильно указываю кодировку файла в JNLP или есть какая-то разница между стандартным исполнением и веб-стартом, которая влияет на это?

Многозначительный.

EDIT: Я использую API Groovy для доступа к веб-сервису Remember the Milk RESTful. Весь текст, который является проблематичным, будет получен из полученных данных (например, имен задач) и фактически не хранится на диске в двоичном или текстовом формате. Любопытно, что «-Dfile.encoding = UTF-8» на самом деле исправит его локально.

+0

Оказывается, вы можете указать только определенные «благословленные» аргументы VM в JNLP. Арги, которые не считаются «безопасными», просто игнорируются. См. Http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html#resources для списка тех, которые работают DO –

ответ

4

Я настоятельно рекомендую явно указать кодировку везде, где вы собираетесь преобразовывать текст в двоичный или наоборот. Опираясь на JVM default - даже после того, как вы установили этот параметр по умолчанию, мне не кажется хорошей идеей. Вы действительно не сказали, что делаете с текстом, но если вы явно установите кодировку при сохранении или загрузке, все должно быть хорошо.

+0

Обновлен мой вопрос с надеждой достаточно информации о том, как я работаю с текстом. Приветствия. –

Смежные вопросы