如何在Java中执行Unicode等价性检查/规范化[已关闭]

yc0p9oo0  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(117)

**已关闭。**此问题正在寻求有关书籍、工具、软件库等的建议。它不符合Stack Overflow guidelines准则。当前不接受答案。

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
昨天关门了。
此帖子在15小时前编辑并提交审查。
Improve this question
在我的工作中,我经常需要比较字符串和名称,最近我偶然发现了Unicode equivalence的概念,它可能有助于推广我们今天手动执行的许多操作,并可能解决许多其他边缘情况。
我的问题是:如何根据Java中的Unicode等效规范中定义的规则执行字符串的Unicode规范化或Unicode等效比较。
在stackoverflow/Google/Apache commons-text库中进行了简短的搜索,但没有找到允许我这样做的工具。

kyxcudwk

kyxcudwk1#

扩展注解中所写的内容,内置的Normalizer包含isNormalizednormalize方法。normalize方法接收Normalizer.Form枚举类型的参数,允许您指定如何规范化。示例:

System.out.println(Normalizer.normalize("Some text", Normalizer.Form.NFKD)

此外,如here所述,每个Java发行版都支持特定版本的Unicode,并具有自己的规范化标准。

相关问题