Проблемы с кодировкой символов в веб-старте Java - PullRequest
3 голосов
/ 09 июля 2010

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

Оказывается, что когда я использую стандартное исполнение 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, или есть какое-то различие между Standard Execution и Webstart, которое влияет на это?

высоко ценится.

РЕДАКТИРОВАТЬ: я использую Groovy API для доступа к веб-сервису Remember The Milk RESTful. Весь проблемный текст поступает из полученных данных (например, имен задач) и фактически не хранится на диске в двоичном или текстовом виде. Любопытно, что "-Dfile.encoding = UTF-8" фактически исправит это локально.

1 Ответ

4 голосов
/ 09 июля 2010

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

...