我有一个包含亚洲翻译的属性文件,我相信它保存为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"));
谢谢大家的帮助
答案 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 ++这样的程序员编辑器来确保编码。