Как конвертировать японские символы половинной/полной ширины с помощью библиотеки ICU

я не слишком хорошо знаком с java (из С++/С#). Мне нужно использовать java для преобразования некоторых документов из японских символов половинной ширины в полную ширину.

кто-нибудь будет добр и приведет пример для начала. мне не повезло найти какой-то образец.

просто примечание, что это должно быть на Java.


person user697697    schedule 29.06.2011    source источник
comment
Примечание. ICU означает «Международные компоненты для Unicode». Я не имел в виду IBM (исключительно) в течение десятилетия или около того.   -  person Steven R. Loomis    schedule 29.06.2011


Ответы (3)


Нашел это на сайте японского блогера Араи:

String data1 = "全角ひらがな"; // full-width hiragana
String data2 = "全角カタカナ"; // full-width katakana
String data3 = "半角カタカナ";    // half-width katakana

Transliterator transliterator = Transliterator.getInstance("Hiragana-Katakana");

System.out.println(transliterator.transliterate(data1));
System.out.println(transliterator.transliterate(data2));
System.out.println(transliterator.transliterate(data3));

Это должно привести к тому, что все 3 японские строки будут транслитерированы, как и следовало ожидать. Дайте этому шанс, дайте мне знать, если это не сработает.

person buruzaemon    schedule 05.07.2011
comment
Я не думаю, что ОП хотел, чтобы хирагана была изменена; похоже, он хотел Halfwidth-Fullwidth. - person Daniel Lubarov; 15.04.2013
comment
Спасибо за комментарий, @Daniel. Я только предоставил пример для того, чтобы OP начал работать, и пример Араи-сана просто превратился из хираганы в катакану. Я полагал, что человек, задающий вопрос, сможет понять, куда идти дальше. - person buruzaemon; 15.04.2013

Вы видели руководство пользователя ICU и ICU APIdoc по теме? Вы можете использовать демонстрацию транслитератора, чтобы проверить поведение, например "

person Steven R. Loomis    schedule 29.06.2011
comment
о, спасибо за демо. Я прочитал API и создал правила фильтрации для преобразования, но безуспешно. демо должно помочь! - person user697697; 30.06.2011
comment
Спасибо @Steven. Это очень помогло в моем проекте Android. Nice One +1 за это. - person Shashank_Itmaster; 04.06.2012

Я создал небольшую простую библиотеку для обработки всех типов преобразования каны в Java, подробности здесь

Чтобы преобразовать половинную ширину в полную, просто загрузите JAR, а затем напишите такой код:

import mariten.kanatools.KanaConverter;

// rest of code...

String half_width = "半角カタカナ";

int conv_flags = KanaConverter.OP_HAN_KATA_TO_ZEN_KATA;
String full_width = KanaConverter.convertKana(half_width, conv_flags);

System.out.println(full_width)
//半角カタカナ
person Manmaru    schedule 05.01.2015