CharsetICU用于char集转换的java示例

时间:2011-03-14 13:42:44

标签: java character-encoding icu

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

3 个答案:

答案 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"