¿Por qué la cadena & # 8220; & # 191; & # 8221; obtenga la traducción a & # 8220; & # 194; & # 191; & # 8221; al llamar a .getBytes ()
-
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?
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