Я читаю XML-документ (UTF-8) и в конечном итоге показываю содержимое на веб-странице, используя ISO-8859-1. Как и ожидалось, несколько символов отображаются неправильно, например "
, –
и ’
(они отображаются как?).
Можно ли преобразовать эти символы из UTF-8 в ISO-8859-1?
Вот фрагмент кода, который я написал для этого:
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);
Я не совсем уверен, что происходит, но я считаю, что readLine() вызывает горю (поскольку строки будут закодированы в формате Java/UTF-16?). Другой вариант, который я пытался, заключался в замене latin1 на
byte[] latin1 = new String(sb.toString().getBytes("UTF-8")).getBytes("ISO-8859-1");
Я прочитал предыдущие сообщения по этому вопросу, и я учусь, когда иду. Заранее благодарим за помощь.