Perl Unicode 美食书:Unicode 规范化
℞ 27: Unicode 规范化
处方一提醒您在应用程序的边界处始终分解和重新组合 Unicode 数据。[a href="/pub/2012/04/perl-unicode-cookbook-always-decompose-and-recompose.html">始终分解和重新组合 Unicode 数据。 [a href="https://metacpan.org/pod/Unicode::Normalize">Unicode::Normalize 可以为您做更多。它支持多种 Unicode 规范化形式。
规范化,当然,将任意形式的 Unicode 数据规范化为标准表示。 (如果复合字符由多个字符组成,规范化分解将按规范顺序排列这些字符。规范化组合在可能的情况下将它们组合成单个复合字符。没有这种规范化,您可以想象确定一个字符串是否与另一个字符串逻辑上等效有多难。)
通常,您应该在输入时将数据渲染为 NFD(规范分解形式),在输出时为 NFC(规范分解后跟规范组合)。使用 NFKC 或 NFKD 函数可以提高搜索的召回率,前提是您已经对要搜索的文本进行了相同的规范化。
请注意,这种规范化不仅涉及拆分或连接预组合兼容符号;它还根据它们的规范组合类别重新排列标记,并清除单例。
use Unicode::Normalize;
my $nfd = NFD($orig);
my $nfc = NFC($orig);
my $nfkd = NFKD($orig);
my $nfkc = NFKC($orig);
上一页:℞ 26: 自定义字符属性
系列索引:标准序言
标签
反馈
这篇文章有什么问题吗?请在 GitHub 上通过打开一个问题或拉取请求来帮助我们 GitHub