我正在读取一个XML文档(UTF-8编码),并最终将内容显示在使用ISO-8859-1编码的Web页面上。如预期,一些字符无法正确显示,例如“
、–
和’
(它们显示为?)。
是否可能将这些字符从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");
我已经阅读了关于这个主题的以前的帖子,而我正在学习中。提前感谢您的帮助。