Me gustaría saber cuál es el valor de la Máquina Virtual de Java (JVM) de propiedades para establecer mi archivo de codificación UTF-8.Propiedad JVM -Dfile.encoding = UTF8 o UTF-8?
¿Pongo -Dfile.encoding=UTF8
o -Dfile.encoding=UTF-8
?
Me gustaría saber cuál es el valor de la Máquina Virtual de Java (JVM) de propiedades para establecer mi archivo de codificación UTF-8.Propiedad JVM -Dfile.encoding = UTF8 o UTF-8?
¿Pongo -Dfile.encoding=UTF8
o -Dfile.encoding=UTF-8
?
Tanto UTF8 y el trabajo UTF8 para mí.
Si, al ejecutar una 1.7.x Oracle JDK HotSpot, en una plataforma Linux en el entorno local sugiere UTF-8 (por ejemplo LANG=en_US.utf8
), si no se establece en la línea de comandos con -Dfile.encoding
, el JDK por defecto file.encoding
y el defecto Charset
así:
System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
... rendimientos:
file.encoding: UTF-8
defaultCharset: UTF-8
... lo que sugiere el valor predeterminado es UTF-8
en una plataforma de este tipo.
Además, si java.nio.charset.Charset.defaultCharset()
encuentra file.encoding
no-juego, busca java.nio.charset.Charset.forName("UTF-8")
, lo que sugiere que prefiere esa cadena, aunque es bien-alias, por lo que "UTF-8" también funcionará bien.
Si ejecuta el mismo programa en la misma plataforma con java -Dfile.encoding=UTF8
, sin la hypen, produce:
file.encoding: UTF8
defaultCharset: UTF-8
... señalando que el conjunto de caracteres por defecto se ha canonicalized UTF8
-UTF-8
.
No es una respuesta directa, pero es muy útil si no tiene acceso a cómo se inicia java: puede establecer la variable de entorno JAVA_TOOLS_OPTIONS
en -Dfile.encoding="UTF-8"
y cada vez que se inicie jvm seleccionará esa opción.
, de hecho, ya he visto esta página. Pero no sabía cuál de los "Nombre canónico para java.nio API" o "Nombre canónico para java.io y java.lang API" debo usar. – astrotouf
¿Pueden funcionar tanto UTF8 como UTF-8? – dlamblin
Ambos funcionan, pero 'UTF-8' se prefiere a' UTF8', el único formato estándar. – Tiny