【发布时间】:2010-11-19 10:15:36
【问题描述】:
我正在阅读一个 XML 文档 (UTF-8),并最终使用 ISO-8859-1 在网页上显示内容。正如预期的那样,有几个字符没有正确显示,例如“、– 和’(它们显示为?)。
是否可以将这些字符从 UTF-8 转换为 ISO-8859-1?
这是我编写的用于尝试此操作的 sn-p 代码:
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");
我已阅读有关该主题的先前帖子,并且正在学习中。提前感谢您的帮助。
【问题讨论】:
标签: java utf-8 character-encoding iso-8859-1