Cambiar la codificación por defecto de String(byte[])
Pregunta
Es allí una manera de cambiar la codificación utilizada por el String(byte[]) constructor ?
En mi propio código que uso String(byte[],String) para especificar la codificación, pero estoy usando una librería externa que no puedo cambiar.
String src = "with accents: é à";
byte[] bytes = src.getBytes("UTF-8");
System.out.println("UTF-8 decoded: "+new String(bytes,"UTF-8"));
System.out.println("Default decoded: "+new String(bytes));
El resultado de esto es :
UTF-8 decoded: with accents: é à Default decoded: with accents: é Ã
He intentado cambiar el sistema de propiedad file.encoding
pero no funciona.
Solución
Usted necesita cambiar la configuración regional antes de lanzar la JVM;ver:
Algunos lugares parecen implicar que usted puede hacerlo mediante la configuración del archivo.codificación de la variable a la hora de lanzar la JVM, tales como
java -Dfile.encoding=UTF-8 ...
...pero no he probado a mí mismo.La manera más segura es la de establecer una variable de entorno en el sistema operativo.
Otros consejos
Citado de defaultCharset()
El juego de caracteres por defecto se determina durante la máquina virtual de inicio y normalmente depende de la configuración regional y juego de caracteres del operativo subyacente sistema.
En la mayoría de los sistemas operativos que puede establecer el juego de caracteres utilizando una variable de entorno.
Creo que quiere que este:Sistema.setProperty("archivo.la codificación", "UTF-8");
Se resolvieron algunos problemas, pero todavía tengo otro.Los caracteres "í" y "Í" no se convierten correctamente si el LO es ISO-8859-1.Sólo con la opción de JVM en el inicio, me lo ha resuelto.Ahora sólo mi Consola de Java en NetBeans IDE es estrellarse conjunto de caracteres a la hora de mostrar caracteres especiales.