Пример java CharsetICU для преобразования набора символов - PullRequest
0 голосов
/ 14 марта 2011

Мне нужно конвертировать файл из EBCDIC (IBM 937) в UTF-8. Любая идея, как я могу использовать CharsetICU (API icu4j) для преобразования charset?

Ответы [ 3 ]

1 голос
/ 18 марта 2011

Думаю, вы сможете использовать CharsetICU. forNameICU ("ibm-937"), после чего вы можете передать полученный Charset в устройство чтения / записи.

1 голос
/ 14 марта 2011

Нет необходимости использовать внешние библиотеки для этого преобразования (обработка исключений опущена):

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();
0 голосов
/ 17 сентября 2014

Это НЕ преобразование кодировки, это пример "транслитерации" с использованием библиотеки ICU.

Версия: ICU4J 53.1

Пакет: com.ibm.icu.text.Transliterator

Transliterator.getInstance("Latin-ASCII").transliterate("Your text");

Где: "Latin-ASCII" - это необходимый вам набор символов (ВАЖНО: это НЕ кодировка).Вы можете проверить доступные идентификаторы, используя Transliterator.getAvailableIDs ();

Для "Latin-ASCII":

 Given "123" returns "123"
 Given "abc" returns "abc"
 Given "Š Œ ñ" returns "S OE n" 
...