Estoy leyendo un documento XML (UTF-8) y finalmente visualizo el contenido en una página web utilizando ISO-8859-1. Como era de esperar, hay algunos caracteres que no se muestran correctamente, como “
, –
y ’
(¿se muestran como?).Conversión de UTF-8 a ISO-8859-1 en Java
¿Es posible convertir estos caracteres de UTF-8 a ISO-8859-1?
Aquí es un fragmento de código que he escrito para intentar esto:
BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
byte[] latin1 = sb.toString().getBytes("ISO-8859-1");
return new String(latin1);
No estoy muy seguro de lo que está pasando mal, pero yo creo que es readLine() que está causando el dolor (ya que las cadenas haría ¿Está codificado Java/UTF-16?). Otra variación que probé fue reemplazar latin1 con
byte[] latin1 = new String(sb.toString().getBytes("UTF-8")).getBytes("ISO-8859-1");
He leído publicaciones anteriores sobre el tema y estoy aprendiendo sobre la marcha. Gracias de antemano por tu ayuda.
funciona de maravilla . ¡Gracias! – Chocula
¡Esto me salvó un montón de dolor! – daniel0mullins