Java将ISO-8859-1转换为UTF-8

时间:2014-02-25 14:53:25

标签: java utf-8

我有一个包含亚洲翻译的属性文件,我相信它保存为ISO-8859-1。我正在尝试将它们转换为UTF-8。因此è­¦å:等于警告:

我已尝试过本网站上列出的几种方法以及其他一些网站,但没有运气。

byte[] isoBytes = line.getBytes("ISO-8859-1");
byte[] utf8 = new String(isoBytes, "ISO-8859-1").getBytes("UTF-8");

CharBuffer charBuf = null;
Charset isocharset = Charset.forName("iso-8859-1");
CharsetDecoder isoDecoder = Charset.forName("iso-8859-1").newDecoder();
CharsetDecoder utf8Decoder = Charset.forName("UTF-8").newDecoder();
byte sByte[] = line.getBytes("iso-8859-1");
charBuf = utf8Decoder.decode(isoBuf);

è­¦å:转换为警告:的最简单方法是什么?

谢谢 富

@Pshemo得到了我正在寻找的答案

byte[] isoBytes = line.getBytes("ISO-8859-1");
System.out.println(new String(isoBytes, "UTF-8"));

谢谢大家的帮助

3 个答案:

答案 0 :(得分:1)

这对我有用:

@Pshemo得到了我正在寻找的答案

byte[] isoBytes = line.getBytes("ISO-8859-1");
System.out.println(new String(isoBytes, "UTF-8"));

答案 1 :(得分:0)

最简单,最安全的方法是将文件保存为UTF-8并按原样读取。

你在这里找到的答案很可能也说明了ISO Latin-1(ISO-8859-1)无法存储UTF-8可以处理的所有代码点(特别是亚洲字符),因此存储属性(文本)资源?)因为ISO Latin-1将导致损失。

因此,要么将其存储为UTF-8,要么使用unicode代码点,例如: \u8b66\u544a 警告Warning :)的{{1}}。

答案 2 :(得分:0)

事实上,显示UTF-8内容会产生ISO-8859-1:è|å(加上某些东西)。这很好。

所以文件是UTF-8。 JDK使用工具native2ascii转换并转换为u转义非ASCII字符到\uXXXX

native2ascii -encoding UTF-8 old.properties new.properties

使用像JEdit或Notepad ++这样的程序员编辑器来确保编码。