#! /usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use strict; $| = 1; html_header(); han_table(); section_table(); for (1..94) { zen_table ($_); print "
\n"; } print ""; sub zen_table { my $sec = shift; my $i = $sec + 160; # 161(A1)-254(FE) # $c1 ... 1st byte( $i == hex($c1) ) # $c2 ... 2nd byte( $j == hex($c2) ) print "\n"; print qq{"; my $c1 = sprintf("%.2lX", $i); print qq{\n}; for my $j (0xA1..0xFE) { # dec to hex my $c2 = sprintf("%.2lX", $j); $j % 16 == 0 and print qq{\n\n}; print qq{\n"; } print "\n
}; print sec_label($sec); print "
$c1
$c1$c2
}; print pack('c', $i), pack('c', $j); print "
\n\n"; } sub sec_label { my $sec = shift; my $ret = "第" . sprintf ("%.2d", $sec). "区 "; if ($sec == 1 || $sec == 2) { $ret .= "各種記号" } elsif ($sec == 3) { $ret .= "算用数字、ラテンアルファベット" } elsif ($sec == 4) { $ret .= "ひらがな" } elsif ($sec == 5) { $ret .= "カタカナ" } elsif ($sec == 6) { $ret .= "ギリシアアルファベット" } elsif ($sec == 7) { $ret .= "キリルアリファベット" } elsif ($sec == 8) { $ret .= "罫線素片" } elsif (16 <= $sec && $sec <= 47) { $ret .= "第一水準漢字(16-47)" } elsif (48 <= $sec && $sec <= 84) { $ret .= "第二水準漢字(48-84)" } $ret .=""; $ret; } sub han_table { print "\n"; print qq{}; for my $i (0xA1..0xDF) { $i % 16 == 0 and print qq{\n}; print qq{'; } print "
}; print "半角カナ"; print qq{
8E
8E}, sprintf("%.2lX", $i); print "
"; print pack('c', hex('8E')), pack('c', $i), '
\n"; } sub html_header { print < EUC char-table

EUC char-table

EOT } sub section_table { print <
区分 (1byte目)
A1
記号
A2
記号
A3
英数
A4
ひらがな
A5
カタカナ
A6
ギリシャ
A7
キリル
A8
罫線
A9
AA
AB
AC
AD
AE
AF
B0
一漢
B1
一漢
B2
一漢
B3
一漢
B4
一漢
B5
一漢
B6
一漢
B7
一漢
B8
一漢
B9
一漢
BA
一漢
BB
一漢
BC
一漢
BD
一漢
BE
一漢
BF
一漢
C0
一漢
C1
一漢
C2
一漢
C3
一漢
C4
一漢
C5
一漢
C6
一漢
C7
一漢
C8
一漢
C9
一漢
CA
一漢
CB
一漢
CC
一漢
CD
一漢
CE
一漢
CF
一漢
D0
二漢
D1
二漢
D2
二漢
D3
二漢
D4
二漢
D5
二漢
D6
二漢
D7
二漢
D8
二漢
D9
二漢
DA
二漢
DB
二漢
DC
二漢
DD
二漢
DE
二漢
DF
二漢
E0
二漢
E1
二漢
E2
二漢
E3
二漢
E4
二漢
E5
二漢
E6
二漢
E7
二漢
E8
二漢
E9
二漢
EA
二漢
EB
二漢
EC
二漢
ED
二漢
EE
二漢
EF
二漢
F0
二漢
F1
二漢
F2
二漢
F3
二漢
F4
二漢
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE

EOT }