我需要将文件从EBCDIC(IBM 937)转换为UTF-8。知道如何使用CharsetICU(icu4j API)进行字符集转换吗?
答案 0 :(得分: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();
答案 1 :(得分:1)
认为您应该能够使用CharsetICU。forNameICU(“ibm-937”)然后您可以将生成的Charset传递给读者/作者。
答案 2 :(得分:0)
这不是字符集转换,这是使用ICU库的“音译”示例。
版本:ICU4J 53.1
包:com.ibm.icu.text.Transliterator
Transliterator.getInstance("Latin-ASCII").transliterate("Your text");
其中:“Latin-ASCII”是您需要的“字符集”(重要提示:这不是编码)。您可以使用Transliterator.getAvailableIDs();
检查可用的ID对于“Latin-ASCII”:
Given "123" returns "123"
Given "abc" returns "abc"
Given "Š Œ ñ" returns "S OE n"