使用Unicode::UCD获取Unicode字符信息
2012年3月13日
没有评论
Unicode::UCD可以获取Unicode字符信息。Perl 5.12以上版本包含了此模块,而5.10只有升级到更高的版本才能使用该模块。下面是获取汉字“淮”Unicode信息的例子:
#!/usr/bin/perl
use strict;
use warnings;
use Unicode::UCD 'charinfo';
use charnames ':full';
use Data::Dumper;
my $charinfo = charinfo(ord( "\N{U+6dee}" ));
print Dumper $charinfo;
print "显示汉字 ";
binmode STDOUT, ":utf8";
print "\N{U+6dee}\n";
打印的结果:
$VAR1 = {
'digit' => '',
'bidi' => 'L',
'category' => 'Lo',
'code' => '6DEE',
'script' => 'Han',
'combining' => 0,
'upper' => '',
'name' => 'CJK UNIFIED IDEOGRAPH-6DEE',
'unicode10' => '',
'decomposition' => '',
'comment' => '',
'mirrored' => 'N',
'lower' => '',
'numeric' => '',
'decimal' => '',
'title' => '',
'block' => 'CJK Unified Ideographs'
};
显示汉字 淮
汉字的Unicode字符集可以在此处获取。一些Unicode图形(表情)可以参考这里。注意,如果要在系统中显示该表情图形或文字,必须要确定该表情图形和文字在系统字符映射表中有对应的条目,否则是无法正常显示的。比如笑脸”WHITE SMILING FACE”在字符映射表中有对应的条目,可以打印出来“☺”;而“SMILING CAT FACE WITH OPEN MOUTH”没有对应条目就无法正常显示了。Perl的charnames是访问Unicode集较为方便的接口,“\N“可在运行时编译后面花括号{}中的十六进制数和Unicode名称,比如\N{U+263a}和\N{WHITE SMILING FACE}都可以打印出笑脸。