テキストを分解しようとしています。ここからの例: http://docs.oracle.com/javase/6/docs/api/java/text/Normalizer.html
U+00C1 LATIN CAPITAL LETTER A WITH ACUTE (Á)
または 2 つの別個の文字として (「分解された」形式):
U+0041 LATIN CAPITAL LETTER A
U+0301 COMBINING ACUTE ACCENT
Oracle のこのチュートリアル ページをフォローしています: http://docs.oracle.com/javase/tutorial/i18n/text/normalizerapi.html
この単純なケースは私にはうまくいきません:
- 元の言葉:
"schön"
- NFC:
"schön"
- NFD:
"scho\u0308n"
- NFKC:
"schön"
- NFKD:
"scho\u0308n"
上記のすべての場合、関数Normalizer.normalize("schön", form)
(フォームは 、 などのいずれかNormalizer.Form.NFC
)Normalizer.Form.NFD
で、結果は同じです。"schön"
このコードは、Eclipse JDT で使用する Linux 上の Oracle JDK 1.6 または 1.7 インストールでは機能しません。
String n = Normalizer.normalize("schön", Normalizer.Form.NFD);
結果n
は常に「schön」です。
この「問題」は、(1)この機能を完全に誤解している、または(2)悪い環境のいずれかのようなにおいがします。ハマった。助言がありますか?私のシステム設定は、かなりバニラです。