我需要将文件从 EBCDIC (IBM 937) 转换为 UTF-8。知道如何使用 CharsetICU (icu4j API) 进行字符集转换吗?
问问题
2312 次
3 回答
1
认为您应该能够使用 CharsetICU。forNameICU ("ibm-937") 然后您可以将生成的字符集传递给读取器/写入器。
于 2011-03-18T15:55:21.157 回答
1
无需使用外部库进行此转换(省略异常处理):
Reader r = new InputStreamReader(new FileInputStream(...), "IBM937");
Writer w = new OutputStreamWriter(new FileOuputStream(...), "UTF-8");
char[] buf = new char[65536];
int size = 0;
while ((size = r.read(buf)) != -1)
w.write(buf, 0, size);
r.close();
w.close();
于 2011-03-14T13:48:30.743 回答
0
这不是字符集转换,这是使用 ICU 库的“音译”示例。
版本:ICU4J 53.1
包:com.ibm.icu.text.Transliterator
Transliterator.getInstance("Latin-ASCII").transliterate("Your text");
其中:“Latin-ASCII”是您需要的“字符集”(重要提示:这不是编码)。您可以使用 Transliterator.getAvailableIDs() 检查可用的 ID;
对于“拉丁语 ASCII”:
Given "123" returns "123"
Given "abc" returns "abc"
Given "Š Œ ñ" returns "S OE n"
于 2014-09-17T11:37:08.273 回答