Sto leggendo un documento XML (UTF-8) e alla fine visualizzo il contenuto su una pagina Web utilizzando ISO-8859-1. Come previsto, alcuni caratteri non vengono visualizzati correttamente, ad esempio “
, –
e ’
(vengono visualizzati come?).Conversione da UTF-8 a ISO-8859-1 in Java
È possibile convertire questi caratteri da UTF-8 a ISO-8859-1?
Ecco un frammento di codice che ho scritto per tentare questo:
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);
Io non sono molto sicuro di quello che sta succedendo storto, ma credo che sia readLine() che causa il dolore (dal momento che le corde sarebbe essere codificato in Java/UTF-16?). Un'altra variante che ho provato era di sostituire latin1 con
byte[] latin1 = new String(sb.toString().getBytes("UTF-8")).getBytes("ISO-8859-1");
Ho letto i post precedenti sul tema e sto imparando come vado. Grazie in anticipo per il vostro aiuto.
funziona benissimo . Grazie! – Chocula
Questo mi ha salvato un sacco di dolore! – daniel0mullins