2009-05-30 7 views

Répondre

2

Merci à toutes les idées utiles.

Il se trouve la clé de mon problème était cette phrase:

Sur Mac OS X 10.5 avec Java 1.5, j'ai cet extrait de code

L'IDE J'utilise , IntelliJ IDEA définissait explicitement le codage du fichier sur MacRoman. En modifiant le codage du projet en UTF-8, le problème a été résolu sans aucun changement de code.

5

Il y a deux problèmes potentiels ici. D'abord, vous avez des caractères cyrilliques dans votre code source. Cela signifie que vous devez vous assurer que l'encodage que vous avez utilisé pour stocker le fichier est le même que celui utilisé par le compilateur. Consultez la page de manuel javac pour voir ce qu'est son encodage par défaut et/ou comment spécifier un encodage spécifique. Ou, utilisez des échappements Unicode dans votre chaîne.

La deuxième possibilité est que votre police de terminal n'affiche pas les caractères cyrilliques. Je ne pense pas que ce soit ce qui se passe, puisque (1) vous êtes capable de voir les caractères dans le code source, et (2) je crois que les glyphes manquants sont des blocs, les encodages incorrects sont des points d'interrogation.

Pour tester, remplacez simplement votre chaîne par les échappements Unicode corrects et vérifiez que les caractères s'affichent sur votre écran.

3

Si vous utilisez le lieu de System.out, et vous êtes vraiment vraiment chanceux, classe Console vous Might être en mesure d'obtenir la console pour imprimer des caractères cyrilliques.

Mais en général, les consoles n'ont pas un bon support de jeu de caractères.

Il serait beaucoup plus fiable de sortir votre chaîne d'une autre manière, par ex. l'imprimer sur un composant Swing.

1

Si votre chaîne est obtenue dynamiquement quelque part et que vous devez vous assurer qu'elle est encodée comme vous le souhaitez, utilisez certains des constructeurs de classe String qui utilisent le type Charset comme paramètre pour convertir cette chaîne.

Questions connexes