在 Java 中将 UTF-8 转换为 ISO-8859-1
2022-09-04 01:16:23
我正在阅读 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");
我已经阅读了以前关于这个主题的文章,我正在边走边学。提前感谢您的帮助。