Perl Unicode 烹饪书:不区分大小写和重音的对比

℞ 39: 不区分大小写和重音的对比

如您所注意到的,许多 Unicode 字符串有多种可能的表示形式。要比较两个 Unicode 字符串是否相等,不仅需要比较它们的代码点,还需要考虑更多的因素。不仅要考虑多种表示形式,还要决定哪些类型的差异是重要的:您关心单个字符的大小写吗?关于重音的存在或不存在呢?

使用合取对象按字符而不是按代码点比较 Unicode 文本。要执行不考虑大小写或重音差异的比较,请选择适当的比较级别。Unicode::Collateeq() 方法提供了可定制的 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 在文本上而不是在代码点上工作

系列索引:标准前言

下一部分:℞ 40: 不区分大小写和重音的区域设置比较

标签

反馈

这篇文章有什么问题吗?通过在 GitHub 上打开问题或拉取请求来帮助我们。