codification codificar codificacion charset java encoding character-encoding jvm

codificar - string codification java



¿Cuál es la codificación predeterminada de JVM? (6)

El conjunto de caracteres predeterminado de la JVM es el del sistema en el que se está ejecutando. No hay un valor específico para esto y, en general, no debería depender de que la codificación predeterminada tenga un valor particular.

Se puede acceder en tiempo de ejecución a través de Charset.defaultCharset() , si eso te sirve, aunque en realidad deberías especificar explícitamente la codificación siempre que puedas hacerlo.

¿UTF-8 es la codificación predeterminada en Java?
Si no, ¿cómo puedo saber qué codificación se usa por defecto?


Estoy seguro de que esto es específico de la implementación de JVM, pero pude "influir" en el archivo predeterminado de mi JVM mediante la ejecución de:

export LC_ALL=en_US.UTF-8

(ejecuta la versión de Java 1.7.0_80 en Ubuntu 12.04)

Además, si escribe "locale" desde su consola de Unix, debería ver más información allí.

Todo el crédito va a http://www.philvarner.com/2009/10/24/unicode-in-java-default-charset-part-4/


Hay tres codificaciones "predeterminadas":

  • file.encoding:
    System.getProperty("file.encoding")

  • java.nio.Charset:
    Charset.defaultCharset()

  • Y la codificación de InputStreamReader:
    InputStreamReader.getEncoding()

Puedes leer más sobre esto en esta página .


Puede usar esto para imprimir los valores predeterminados de JVM

import java.nio.charset.Charset; import java.io.InputStreamReader; import java.io.FileInputStream; public class PrintCharSets { public static void main(String[] args) throws Exception { System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Charset.defaultCharset=" + Charset.defaultCharset()); System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.java")).getEncoding()); } }

Compilar y ejecutar

javac PrintCharSets.java && java PrintCharSets


Tenga en cuenta que puede cambiar la codificación predeterminada de la JVM utilizando el file.encoding propiedad confusamente denominado file.encoding .

Si su aplicación es particularmente sensible a las codificaciones (quizás mediante el uso de API que implican codificaciones predeterminadas), debe establecer explícitamente esto en el inicio de JVM a un valor constante (conocido).


Va a depender de la configuración regional. Diferente configuración regional, diferente codificación predeterminada.