使用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}都可以打印出笑脸。