¿Por qué la cadena & # 8220; & # 191; & # 8221; obtenga la traducción a & # 8220; & # 194; & # 191; & # 8221; al llamar a .getBytes ()

StackOverflow https://stackoverflow.com/questions/176084

  •  05-07-2019
  •  | 
  •  

Pregunta

Al escribir la cadena " & # 191; " utilizando

System.out.println(new String("¿".getBytes("UTF-8")));

& # 194; & # 191; está escrito en lugar de solo & # 191 ;.

¿POR QUÉ? ¿Y cómo lo arreglamos?

¿Fue útil?

Solución

No tienes que usar UTF-16 para resolver esto:

new String("¿".getBytes("UTF-8"), "UTF-8");

funciona bien. Siempre que la codificación dada al método getBytes () sea la misma que la codificación que se pasa al constructor de String, ¡debería estar bien!

Otros consejos

Debe especificar el conjunto de caracteres en el constructor de cadenas (consulte documentos API ).

Prueba:

System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));

Debe especificar la codificación tanto al convertir la cadena en bytes como al volver a convertir los bytes en una cadena.

Parece que la consola del sistema no está en UTF-8

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