我正在尝试分解一些文本。此处的示例:http: //docs.oracle.com/javase/6/docs/api/java/text/Normalizer.html
U+00C1 LATIN CAPITAL LETTER A WITH ACUTE (Á)
或作为两个单独的字符(“分解”形式):
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"
此代码不适用于我在 Linux 上的 Oracle JDK 1.6 或 1.7 安装,在 Eclipse JDT 中使用。
String n = Normalizer.normalize("schön", Normalizer.Form.NFD);
结果n
总是“schön”。
这个“问题”听起来像是(1)我完全误解了这个功能,或者(2)环境不好。我被困住了。有什么建议么?我的系统设置非常简单。