【问题标题】:How to get list of known Unicode characters names如何获取已知 Unicode 字符名称的列表
【发布时间】:2020-10-16 07:25:28
【问题描述】:

如何从 perl 获取所有已知名称的列表,这些名称可以在 "\N{...}" 中使用? 无法弄清楚与Unicode::UCD 或其他核心模块有关。

【问题讨论】:

标签: perl unicode


【解决方案1】:

Unicode::UCD 和一个循环:

#!/usr/bin/env perl
use strict;
use warnings;
use Unicode::UCD qw/charinfo/;
use feature qw/say/;

say "Character names defined by Unicode ", Unicode::UCD::UnicodeVersion();
for (my $cp = 0; $cp <= 0x10FFFF; $cp += 1) {
    my $info = charinfo($cp);
    say $info->{"name"} if defined $info && $info->{"name"} ne "";
}

【讨论】:

  • 虽然这不会包括名称别名,如果这很重要的话。
  • 您可以通过在平面 3 之后停止(0x3FFFF 是最后一个代码点)来使其运行得更快,因为此后几乎所有内容都未分配或私人使用。但未来的证明......
  • 如果你有兴趣,我有一个脚本可以为 UCD 创建一个 sqlite 数据库以便于查询。
  • seeE0001, E0020..E007E(不知道它们是什么)和E0100..E01EF(组合字符以选择替代字形)中的一些代码。不知道他们为什么会在上面。
  • charnames 模块做了类似的工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-07
  • 2011-01-27
  • 2015-09-28
  • 2017-01-03
  • 2021-08-31
  • 1970-01-01
  • 2011-09-06
相关资源
最近更新 更多