UTF-8文字コード表
#! /usr/local/bin/perl print qq(Content-type: text/html; charset=UTF-8\n\n); print <<END; <html> <head> <title>UTF-8文字コード表</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>UTF-8文字コード表</h1> <a href="?">2バイト文字/1バイト文字</a> <a href="?e0">e0a080?</a> <a href="?e2">e28080?</a> <a href="?e4">e48080?</a> <a href="?e6">e68080?</a> <a href="?e8">e88080?</a> END if($ENV{'QUERY_STRING'}) { print qq(<table cellspacing="0">\n); print qq(<tr>); print qq(<th>3バイトコード</th>); for($i = 0 ; $i < 16; $i++) { printf(qq(<th>+%x</th>), $i); } print qq(</tr>\n); if($ENV{'QUERY_STRING'} eq "e0") { $start = hex("e0"); $end = hex("e1"); } elsif($ENV{'QUERY_STRING'} eq "e2") { $start = hex("e2"); $end = hex("e3"); } elsif($ENV{'QUERY_STRING'} eq "e4") { $start = hex("e4"); $end = hex("e5"); } elsif($ENV{'QUERY_STRING'} eq "e6") { $start = hex("e6"); $end = hex("e7"); } elsif($ENV{'QUERY_STRING'} eq "e8") { $start = hex("e8"); $end = hex("e9"); } for($i = $start ; $i <= $end ; $i++) { if($start == hex("e0")) { $start2 = hex("a0"); } else { $start2 = hex("80"); } $end2 = hex("bf"); for($j = $start2 ; $j <= $end2 ; $j++) { my $start3 = hex("80"); my $end3 = hex("bf"); for($k = $start3 ; $k <= $end3 ; $k++) { if(($k - $start3) % 16 == 0) { print qq(<tr>); printf(qq(<th>%x%x%x</th>), $i, $j, $k); } printf(qq(<td title="%x%x%x">%s%s%s</td>), $i, $j, $k, chr($i), chr($j), chr($k)); if(($k + 1 - $start3) % 16 == 0) { print qq(</tr>\n); } } } } print qq(</table>\n); } else { 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); $start = hex("c2"); $end = hex("df"); for($i = $start ; $i <= $end ; $i++) { $start2 = hex("80"); $end2 = hex("bf"); for($j = $start2 ; $j <= $end2 ; $j++) { if(($j - $start2) % 16 == 0) { print qq(<tr>); printf(qq(<th>%x%x</th>), $i, $j); } printf(qq(<td title="%x%x">%s%s</td>), $i, $j, chr($i), chr($j)); if(($j + 1 - $start2) % 16 == 0) { 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 < 8 ; $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;
〔 実行する 〕