2010-08-29 6 views
4

Je développe un petit projet et je voudrais utiliser l'internationalisation pour elle. Le problème est que lorsque j'essaie d'utiliser le fichier .properties avec des symboles cyrilliques à l'intérieur, le texte est affiché comme ordures. Quand je code dur les chaînes, ça s'affiche très bien.Utiliser le fichier .properties cyrilliques dans le projet Eclipse

Voici mon code:

ResourceBundle labels = ResourceBundle.getBundle("Labels"); 
btnQuit = new JButton(labels.getString("quit")); 

Et dans mon fichier .properties:

= quit Изход

Et je reçois des déchets. Quand j'essaye

btnQuit = new JButton("Изход); 

Il est affiché correctement. Pour autant que je sache, UTF-8 est l'encodage utilisé pour les fichiers.

Des idées?

+0

définissent « autant que je suis conscient » :-) –

Répondre

7

AnyEdit est une eclipse-plugin qui vous permet de convertir facilement vos propriétés vos fichiers à partir et à la notation unicode. (En évitant l'utilisation d'outils de ligne de commande comme native2ascii)

Si vous utilisez la seule classe Properties (sans regroupement de ressources), depuis Java 1.6, vous avez la possibilité de load le fichier avec un codage personnalisé, en utilisant un Reader (plutôt que d'un InputStream)

Je suppose que vous pouvez également utiliser new PropertyResourceBundle(reader), plutôt que ResourceBundle.getBundle(..), où reader est:

Reader reader = new BufferedReader(new InputStreamReader(
    getClass().getResourceAsStream("messages.properties"), "utf-8"))); 
4

Properties sont ISO-8859-1 codé par défaut. Vous devez utiliser native2ascii pour convertir vos propriétés UTF-8 à un fichier valide de propriétés ISO-8859-1 contenant des séquences d'échappement unicode pour tous les caractères non-ISO-8859-1.

Questions connexes