0

我需要将文件从 EBCDIC (IBM 937) 转换为 UTF-8。知道如何使用 CharsetICU (icu4j API) 进行字符集转换吗?

4

3 回答 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 回答