0

ファイルをEBCDIC(IBM 937)からUTF-8に変換する必要があります。文字セット変換にCharsetICU(icu4j API)を使用する方法はありますか?

4

3 に答える 3

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 に答える
1

CharsetICU を使用できるはずだと思います。forNameICU ("ibm-937") の場合、結果の Charset をリーダー/ライターに渡すことができます。

于 2011-03-18T15:55:21.157 に答える
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 に答える