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.

¿Fue útil?

Solución

Usted necesita cambiar la configuración regional antes de lanzar la JVM;ver:

Java, ID del error 4163515

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top