Perl Unicode 美食佳肴:始终分解与重组

℞ 1: 通用 Unicode 智能过滤器

Unicode 允许相同的字符有多个表示形式。比较这些字符串以检查它们是否相等(排序、搜索、精确匹配)需要小心——包括将这些表示形式正常化为大家熟知的格式的一致且连贯的策略。请参见 Unicode::Normalize

为了有效地处理 Unicode,始终在输入时分解,然后在输出时重组。

 use Unicode::Normalize;

 while (<>) {
     $_ = NFD($_);   # decompose + reorder canonically
     ...
 } continue {
     print NFC($_);  # recompose (where possible) + reorder canonically
 }

有关更多详细信息,请参阅 Unicode 正规化常见问题解答

系列索引: 标准前言

下一节: ℞ 2: 微调 Unicode 警告

标签

反馈

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