Perl Unicode 烹饪书:不区分大小写和重音的对比
℞ 39: 不区分大小写和重音的对比
如您所注意到的,许多 Unicode 字符串有多种可能的表示形式。要比较两个 Unicode 字符串是否相等,不仅需要比较它们的代码点,还需要考虑更多的因素。不仅要考虑多种表示形式,还要决定哪些类型的差异是重要的:您关心单个字符的大小写吗?关于重音的存在或不存在呢?
使用合取对象按字符而不是按代码点比较 Unicode 文本。要执行不考虑大小写或重音差异的比较,请选择适当的比较级别。Unicode::Collate 的 eq()
方法提供了可定制的 Unicode 兼容等价性。
use Unicode::Collate;
my $es = Unicode::Collate->new(
level => 1,
normalization => undef
);
# now both are true:
$es->eq("García", "GARCIA" );
$es->eq("Márquez", "MARQUEZ");
上一部分:℞ 38: 使 cmp 在文本上而不是在代码点上工作
系列索引:标准前言
标签
反馈
这篇文章有什么问题吗?通过在 GitHub 上打开问题或拉取请求来帮助我们。