Perl Unicode 烹饪书:Unicode 区域排序

℞ 37: Unicode 区域排序

正如您已经看到的,Unicode排序尊重Unicode字符属性。您不能按代码点排序并期望得到准确的结果,即使是纯ASCII也不例外。

世界是一个复杂的地方。一些区域有自己的特殊排序规则。

模块 Unicode::Collate::Locale 提供了一个支持区域特定规则的 sort() 方法

 use Unicode::Collate::Locale;

 my $col  = Unicode::Collate::Locale->new(locale => "de__phonebook");
 my @list = $col->sort(@old_list);

该模块自Perl 5.12起成为Perl 5核心发行版的一部分。如果您使用的是较旧的Perl版本,请安装Unicode::Collate发行版以利用它。

Perl Unicode食谱35中提到的ucsort程序接受一个--locale参数。

上一页:℞ 36: 不区分大小写和重音符号的排序

系列索引:标准序言

下一页:℞ 38: 使 cmp 在文本上而不是在代码点上工作

标签

反馈

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