web-dev-qa-db-fra.com

Propriété JVM -Dfile.encoding = UTF8 ou UTF-8?

J'aimerais savoir quelle est la valeur de la propriété Java Virtual Machine (JVM)) pour définir le codage de mon fichier sur UTF-8.

Est-ce que je mets -Dfile.encoding=UTF8 ou -Dfile.encoding=UTF-8?

58
astrotouf

[INFO] BUILD SUCCESS
Picked up Java_TOOL_OPTIONS: -Dfile.encoding=UTF8
En tout cas, ça marche pour moi :)

2
livejq

Ce sera:

UTF8

Voir ici pour les définitions.

58
planetjones

Si vous exécutez un JDK 1.7.x Oracle HotSpot sur une plate-forme Linux où vos paramètres régionaux suggèrent UTF-8 (par exemple, LANG=en_US.utf8), Si vous ne le définissez pas sur la ligne de commande avec -Dfile.encoding, le JDK aura par défaut file.encoding et le Charset par défaut comme ceci:

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 plate-forme.

De plus, si Java.nio.charset.Charset.defaultCharset() trouve que file.encoding N'est pas défini, il recherche Java.nio.charset.Charset.forName("UTF-8"), suggérant qu'il préfère cette chaîne, même si elle est bien aliasée, donc "UTF8" fonctionne également bien.

Si vous exécutez le même programme sur la même plate-forme avec Java -Dfile.encoding=UTF8, Sans le mot-clé, vous obtenez:

file.encoding: UTF8
defaultCharset: UTF-8

... notant que le jeu de caractères par défaut a été canonisé de UTF8 à UTF-8.

15
javabrett

UTF8 et UTF-8 fonctionnent pour moi.

8
Pedro Madrid

Ce n'est pas une réponse directe, mais très utile si vous n'avez pas accès à la façon dont Java démarre: vous pouvez définir la variable d'environnement Java_TOOLS_OPTIONS à -Dfile.encoding="UTF-8" et chaque fois que le jvm démarre, il choisit cette option.

7
Milimetric