Perl Unicode 烹饪书:在固执己见的库中使用 Unicode 文本
℞ 42: 在 DBM 哈希中处理 Unicode 文本,一种繁琐的方法 虽然 Perl 5 在 Perl 自身的世界中处理 Unicode 非常小心,但每次离开 Perl 内部,你都会跨越一个边界...
℞ 42: 在 DBM 哈希中处理 Unicode 文本,一种繁琐的方法 虽然 Perl 5 在 Perl 自身的世界中处理 Unicode 非常小心,但每次离开 Perl 内部,你都会跨越一个边界...
℞ 41: Unicode 换行 如果您曾经试图将大量文本放入一个比文本全宽还窄的显示区域,您就已经处理过换行(或单词换行)的乐趣了。...
℞ 39: 不区分大小写和重音的比较 如您所注意到的,许多 Unicode 字符串有多种可能的表示形式。比较两个 Unicode 字符串以检查它们是否相等...
℞ 38: 使 cmp 能够在文本而不是代码点上工作 即使有了 Perl 5.12 的“unicode_strings”功能,Perl 的某些核心操作默认情况下仍然不会按预期在 Unicode 字符串上执行。...
℞ 36: 不区分大小写和重音的 Unicode 排序 Unicode 排序算法定义了几个排序强度级别,您可以使用这些级别指定某些字符属性对于排序顺序的相关性或无关性...
℞ 34: 打印的 Unicode 列宽 Perl 的 printf、sprintf 和 format 都认为所有代码点都占用 1 个打印列,但实际上许多代码点占用 0 或 2...
℞ 33:字符图形长度 如果你对 Unicode 什么都不了解,请记住这一点:字符不是字节,也不是图形,也不是码点。一个用户可见的符号(图形)可能由多个码点组成。多个码点的组合……
℞ 32:按图形反转字符串 在 Unicode 中,字节和字符不是同构的——而且你可能看到的一个用户可见的字符(图形)在 Unicode 字符串中不一定是单个码点——每个字符串操作都必须意识到……
℞ 31:按图形而不是按码点提取(substr)Unicode 标准附录 #29 讨论了图形簇之间的边界——用户可能感知到的“字符”。CPAN 模块 Unicode::GCString 允许您将 Unicode 字符串视为一个序列……
℞ 30:按图形而不是按码点提取(regex)请记住,Unicode 将图形定义为“用户认为的字符”。码点是 Unicode 码空间中的整数值。虽然 ASCII 将两者混为一谈,……
℞ 29:在正则表达式中匹配 Unicode 图形簇 在 ASCII 时代,我们谈论字符和字节。我们很少看到它们之间的差异。在 Unicode 世界中,字符远不止七个比特的数据。更好……
℞ 28:转换非 ASCII Unicode 数字 Unicode 数字包含的不仅仅是 ASCII 字符 0 - 9。除非你使用了 /a 或 /aa,否则 \d 匹配的不仅仅是 ASCII 数字。这很好!不幸的是,Perl 的隐式字符串到数字转换并不……
℞ 27:Unicode 规范化 建议一提醒你,在应用程序的边界处始终分解和重组 Unicode 数据。Unicode::Normalize 可以为你做更多。它支持多种 Unicode 规范化形式。规范化,当然,涉及 Unicode 数据……
℞ 26:自定义字符属性 Match Unicode Properties in Regex 解释了每个 Unicode 字符都有一个或多个属性,由 Unicode 联盟指定。你可以扩展这些规则来定义你自己的属性,以便 Perl 可以使用……
℞ 25:使用 \p 和 \P 在正则表达式中匹配 Unicode 属性每个 Unicode 码点都有一个或多个属性,指示应用于该码点的规则。Perl 的正则表达式引擎了解这些属性;使用 \p{} 元字符序列来……
℞ 24:在内置字符类中禁用 Unicode 感知 许多正则表达式教程都忽略了内置字符类包括的不仅仅是 ASCII 字符的事实。特别是,如“单词字符”(\w)、“单词边界”(\b)、“空白”(\s)和“数字”(\d)……
℞ 23: 获取字符类别Unicode是一组字符以及应用于这些字符的一组规则和属性。Unicode字符数据库收集了这些属性。核心模块Unicode::UCD提供了对这些属性的访问。这些一般...