【发布时间】:2014-08-24 06:02:36
【问题描述】:
我想规范化任何扩展的 ascii 字符,但不包括变音符号。
如果我想包含变音符号,我会选择:
Normalizer.normalize(value, Normalizer.Form.NFKD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
但是如何排除德语变音符号呢?
因此我想得到:
来源:üöäâÇæôøñÁ
想要的结果:üöäaCaeoonA 或类似
【问题讨论】:
-
规范化扩展字符是什么意思?
-
â -> a例如。这就是规范器的作用。 -
只是一个想法:首先用不受规范化影响的其他东西替换变音符号(及其分解形式!),进行规范化,然后将它们替换回来。
-
您想通过这种标准化实现什么目标?这是你期待的结果吗?归一化后的 U+00E2 实际上不是 U+0061 U+005E,而不仅仅是 U+0061(其他情况也是如此)?
-
是的,这是我想要的结果,但不知道如何。
标签: java unicode normalization matcher unicode-normalization