【问题标题】:Getting all Unicode aliases for a codepoint获取代码点的所有 Unicode 别名
【发布时间】:2016-10-06 10:28:47
【问题描述】:

charnames pragma 提供 charnames::viacode,它返回给定代码点的“最佳”名称

例如

$ perl -Mcharnames=:full -E'say charnames::viacode(ord "A")'
LATIN CAPITAL LETTER A

有没有一种便捷的方法可以从 Perl 中发现该名称的所有已知别名?

【问题讨论】:

  • viacode 通过调用do "unicore/Name.pl" 获取完整列表,但这是一个仅供内部使用的生成文件...不确定除了charnames 提供的之外是否还有公共接口。
  • 您想要只使用代码点的 Unicode 别名,还是想要在 \N{} 中使用的所有值来生成该代码点?

标签: perl unicode


【解决方案1】:

要获取代码点的 Unicode 别名,您可以使用以下命令:

use Unicode::UCD qw( charprop );

my @aliases =
   map { s/:.*//sr }
      split /,/,
         charprop($ucp, "Name_Alias");   # $ucp is the Unicode code point as a number.

例如,这将为 U+0020 SPACE 返回 SP

完整列表可以在here找到。


有关您可以传递给\N{} 的所有值,请参阅here

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2018-06-15
    相关资源
    最近更新 更多