2010-07-09 13 views
3

J'ai une application JavaFX/Groovy que j'essaie de localiser.Problèmes de codage de caractères Java Webstart

Il s'avère que lorsque j'utilise l'exécution JavaFX standard avec l'argument Java Java "-Dfile.encoding = UTF-8" localement, tous mes caractères internationaux (par exemple, ü) s'affichent correctement. Toutefois, si j'appelle l'application via un fichier JNLP, j'utilise java-vm-args = "- Dfile.encoding = UTF-8", par exemple. L'application affiche les caractères internationaux sous la forme d'un couple d'autres caractères aléatoires (comme √ ¬). Est-ce que je spécifie incorrectement le codage de fichier dans le JNLP, ou y a-t-il une différence entre Standard Execution et Webstart qui affecte ceci?

Très appréciée.

EDIT: J'utilise une API Groovy pour accéder au service Web Remember The Milk RESTful. Tout le texte qui pose problème provient des données récupérées (comme les noms de tâches) et n'est pas réellement stocké sur le disque en binaire ou en texte. Il est curieux que "-Dfile.encoding = UTF-8" le corrige localement.

+0

Il s'avère que vous ne pouvez spécifier que certains arguments VM «bénis» dans JNLP. Les args qui ne sont pas considérés comme "sécurisés" sont simplement ignorés. Voir http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html#resources pour une liste de ceux qui fonctionnent DO –

Répondre

4

Je vous conseille vivement de explicitement spécifier l'encodage partout où vous allez convertir du texte en binaire ou vice versa. S'appuyer sur la valeur par défaut de la JVM - même après avoir défini cette valeur par défaut - ne me semble pas être une bonne idée. Vous n'avez pas vraiment dit ce que vous faites avec du texte, mais si vous définissez explicitement l'encodage lorsque vous sauvegardez ou chargez, cela devrait être bon.

+0

Mis à jour ma question avec espoir assez d'informations sur la façon dont je travaille avec le texte. À votre santé. –