Je voudrais savoir quelle est la valeur de la propriété de la machine virtuelle Java (JVM) pour définir l'encodage de mon fichier sur UTF-8.
Est-ce que je mets -Dfile.encoding=UTF8
o -Dfile.encoding=UTF-8
?
Je voudrais savoir quelle est la valeur de la propriété de la machine virtuelle Java (JVM) pour définir l'encodage de mon fichier sur UTF-8.
Est-ce que je mets -Dfile.encoding=UTF8
o -Dfile.encoding=UTF-8
?
Si, en exécutant un Oracle HotSpot JDK 1.7.x, sur une plate-forme Linux où votre locale suggère UTF-8 (par ex. LANG=en_US.utf8
), si vous ne le définissez pas en ligne de commande avec la commande -Dfile.encoding
le JDK utilisera par défaut file.encoding
et la valeur par défaut Charset
comme ça :
System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
... rendements :
file.encoding: UTF-8
defaultCharset: UTF-8
... suggérant que la valeur par défaut est UTF-8
sur une telle plateforme.
En outre, si java.nio.charset.Charset.defaultCharset()
trouve file.encoding
non défini, il recherche java.nio.charset.Charset.forName("UTF-8")
ce qui suggère qu'il préfère cette chaîne, bien qu'elle soit bien alignée, donc "UTF8" fonctionnera aussi très bien.
Si vous exécutez le même programme sur la même plateforme avec java -Dfile.encoding=UTF8
sans le trait d'union, cela donne :
file.encoding: UTF8
defaultCharset: UTF-8
... notant que le jeu de caractères par défaut a été canonisé à partir de UTF8
a UTF-8
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.