1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
use strict;
use warnings;
use Unicode::UCD;
use Data::Dumper;
binmode STDOUT, ':utf8';
my @cs;
for ( # (these are probably more than we really need)
'Basic Latin',
'Latin-1 Supplement',
'Latin Extended-A',
'Latin Extended-B',
'Latin Extended Additional',
'Spacing Modifier Letters',
'General Punctuation',
'Combining Diacritical Marks',
'Mathematical Operators',
) {
print "# $_\n";
for my $r (@{Unicode::UCD::charblock($_)}) {
for my $c ($r->[0]..$r->[1]) {
next if $c < 0x20 or ($c >= 0x7f and $c < 0xa0);
printf "%04X: %s %s\n", $c, chr($c), Unicode::UCD::charinfo($c)->{name} if Unicode::UCD::charinfo($c);
}
}
print "\n";
}
for my $c (0xFE33, 0xFFFD) {
printf "%04X: %s %s\n", $c, chr($c), Unicode::UCD::charinfo($c)->{name} if Unicode::UCD::charinfo($c);
}
|