20 lines
654 B
Perl
20 lines
654 B
Perl
use strict;
|
||
use warnings;
|
||
use utf8;
|
||
binmode(STDOUT, ':utf8');
|
||
use Encode;
|
||
use Unicode::UCD 'charinfo';
|
||
use List::AllUtils qw(zip natatime);
|
||
|
||
for my $c (split //, 'AΑА薵') {
|
||
my $o = ord $c;
|
||
my $utf8 = join '', map { sprintf "%x ", ord } split //, Encode::encode("utf8", $c);
|
||
my $iterator = natatime 2, zip
|
||
@{['Character', 'Character name', 'Ordinal(s)', 'Hex ordinal(s)', 'UTF-8', 'Round trip']},
|
||
@{[ $c, charinfo($o)->{'name'}, $o, sprintf("0x%x",$o), $utf8, chr $o, ]};
|
||
while ( my ($label, $value) = $iterator->() ) {
|
||
printf "%14s: %s\n", $label, $value
|
||
}
|
||
print "\n";
|
||
}
|