utf16のコード表を作ったときのプログラム

テスト用に作成したのでメモ。

use Encode;
print_utf16_table();

sub print_utf16_table{
for my $upper(0..4095){

my $tmp=sprintf("%04X",$upper)."0 ";
Encode::from_to($tmp,'ascii','UTF16-BE');
print $tmp;

for my $lower (0..16){
my $code=pack('n',$upper*16+$lower);
my $moji;
if ($code eq 0x010f || $code eq 220){$moji=" ";}
else{
$moji=$code;
}
$tmp=" ";
Encode::from_to($tmp,'ascii','UTF16-BE');
print $moji,$tmp;
}
$tmp="\n";
Encode::from_to($tmp,'ascii','UTF16-BE');
print $tmp;
}
}