Perl Unicode 烹饪书:Unicode 行断裂

℞ 41: Unicode 行断裂

如果你曾经尝试将大量文本放入比文本全宽还窄的显示区域,你就已经体验到了行断裂(或单词换行)的乐趣。正如你可能已经从 Unicode 预期的那样,该规范提供了一种 Unicode 行断裂算法,该算法尊重 Unicode 文本提供的行断裂机会。

当然,Unicode 字符可能具有影响这些规则的属性。

正如你所期待的 Perl 一样,一个模块实现了 Unicode 行断裂算法。安装 Unicode::LineBreak。此模块尊重直接和间接的断点以及字符串的图形宽度。其基本用法很简单

 use Unicode::LineBreak;
 use charnames qw(:full);

 my $para = "This is a super\N{HYPHEN}long string. " x 20;
 my $fmt  = Unicode::LineBreak->new;
 print $fmt->break($para), "\n";

break() 方法的结果是按有效点断裂的行数组。(默认的最大列数是 76,因此此示例非常适合电子邮件和控制台使用。有关其他配置选项,请参阅模块的文档。)

上一页:℞ 40: 不区分大小写和重音的本地比较

系列索引:标准序言

下一页:℞ 42: 在固执己见的库中的 Unicode 文本

标签

反馈

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