Shift_JIS文字コード表
#! /usr/local/bin/perl
print qq(Content-type: text/html; charset=Shift_JIS\n\n);
print <<END;
<html>
<head>
<title>Shift_JIS文字コード表\</title><style type="text/css">
<!--
body {
text-align:center;
}
h1 {
margin:2px;
font-size:18px;
text-align:center;
}
table {
margin:20px;
width:95%;
border-top:1px solid #666;
border-left:1px solid #666;
}
th, td {
text-align:center;
border-right:1px solid #666;
border-bottom:1px solid #666;
}
th {
background:#fc9;
}
//-->
</style>
</head>
<body>
<h1>Shift_JIS文字コード表\</h1>
END
print qq(<table cellspacing="0">\n);
print qq(<tr>);
print qq(<th>2バイトコード</th>);
for($i = 0 ; $i < 16; $i++) {
printf(qq(<th>+%x</th>), $i);
}
print qq(</tr>\n);
for($i = 0 ; $i < 2 ; $i++) {
if($i == 0) {
$start = hex("81");
$end = hex("9f");
}
else {
$start = hex("e0");
$end = hex("ef");
}
for($j = $start ; $j <= $end ; $j++) {
my $start2 = hex("40");
my $end2 = hex("fc");
for($k = $start2 ; $k <= $end2 ; $k++) {
if(($k - $start2) % 16 == 0) {
print qq(<tr>);
printf(qq(<th>%x%x</th>), $j, $k);
}
printf(qq(<td title="%x%x">%s%s</td>), $j, $k, chr($j), chr($k));
if(($k + 1 - $start2) % 16 == 0) {
print qq(</tr>\n);
}
}
while(($k++ - $start2) % 16 != 0) {
print qq(<td> </td>);
}
print qq(</tr>\n);
}
}
print qq(</table>\n);
print qq(<table cellspacing="0">\n);
print qq(<tr>);
print qq(<th>1バイトコード</th>);
for($i = 0 ; $i < 16; $i++) {
printf(qq(<th>+%x</th>), $i);
}
print qq(</tr>\n);
for($i = 0 ; $i < 16 ; $i++) {
print qq(<tr>);
printf(qq(<th>%x0</th>), $i);
for($j = 0 ; $j < 16 ; $j++) {
printf(qq(<td title="%02x">%s</td>), $i * 16 + $j, chr($i * 16 + $j));
}
print qq(</tr>\n);
}
print qq(</table>\n);
print <<END;
<a href="/">←戻る</a>
</body>
</html>
END
exit;
〔 実行する 〕