如何在Java中将全角日语字符转换为半角日语字符?

Qua*_*yen 1 java encoding character

我正在使用icu 项目的Transliterator类将半角字符转换为全角字符,如下所示:

\n\n
Transliterator transliterator = Transliterator.getInstance("Hiragana-Katakana");\nString converted = transliterator.transliterate("\xef\xbd\xba\xef\xbe\x9d\xef\xbe\x86\xef\xbe\x81\xef\xbe\x8a");  //half-width\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果是converted: \xe3\x82\xb3\xe3\x83\xb3\xe3\x83\x8b\xe3\x83\x81\xe3\x83\x8f (全角)

\n\n

但:

\n\n
String converted = transliterator.transliterate("\xe3\x82\xb3\xe3\x83\xb3\xe3\x83\x8b\xe3\x83\x81\xe3\x83\x8f");  //full-width\n
Run Code Online (Sandbox Code Playgroud)\n\n

的结果converted仍然是: \xe3\x82\xb3\xe3\x83\xb3\xe3\x83\x8b\xe3\x83\x81\xe3\x83\x8f (全角)

\n\n

我的期望是\xef\xbd\xba\xef\xbe\x9d\xef\xbe\x86\xef\xbe\x81\xef\xbe\x8a。谁能帮我解决这个问题吗?

\n\n

谢谢。

\n

Qua*_*yen 5

我在这里找到了答案。使用不同的参数非常简单,如下所示:

\n\n
Transliterator transliterator = Transliterator.getInstance("Halfwidth-Fullwidth");\nString converted = transliterator.transliterate("\xef\xbd\xba\xef\xbe\x9d\xef\xbe\x86\xef\xbe\x81\xef\xbe\x8a");  //half-width\n
Run Code Online (Sandbox Code Playgroud)\n\n

converted值:\xe3\x82\xb3\xe3\x83\xb3\xe3\x83\x8b\xe3\x83\x81\xe3\x83\x8f

\n\n
Transliterator transliterator = Transliterator.getInstance("Fullwidth-Halfwidth");\nString converted = transliterator.transliterate("\xe3\x82\xb3\xe3\x83\xb3\xe3\x83\x8b\xe3\x83\x81\xe3\x83\x8f");  //full-width\n
Run Code Online (Sandbox Code Playgroud)\n\n

converted值:\xef\xbd\xba\xef\xbe\x9d\xef\xbe\x86\xef\xbe\x81\xef\xbe\x8a

\n