зеркало из https://github.com/mozilla/pjs.git
add perl tool which convert CP932.TXT to a JIS0208 table
This commit is contained in:
Родитель
66c82602b0
Коммит
83dac351cb
|
@ -0,0 +1,48 @@
|
|||
#!/user/local/bin/perl
|
||||
sub printsjisto0208()
|
||||
{
|
||||
my($sjis) = (@_);
|
||||
my($first,$second,$h, $l, $j0208);
|
||||
$first = hex(substr($sjis,2,2));
|
||||
$second = hex(substr($sjis,4,2));
|
||||
$jnum=0;
|
||||
|
||||
if($first < 0xE0)
|
||||
{
|
||||
$jnum = ($first - 0x81) * ((0xfd - 0x80)+(0x7f - 0x40));
|
||||
} else {
|
||||
$jnum = ($first - 0xe0 + (0xa0-0x81)) * ((0xfd - 0x80)+(0x7f - 0x40));
|
||||
}
|
||||
if($second >= 0x80)
|
||||
{
|
||||
$jnum += $second - 0x80 + (0x7f-0x40);
|
||||
}
|
||||
else
|
||||
{
|
||||
$jnum += $second - 0x40;
|
||||
}
|
||||
if(($jnum / 94 ) < 94) {
|
||||
printf "0x%02X%02X", (($jnum / 94) + 0x21), (($jnum % 94)+0x21);
|
||||
} else {
|
||||
printf "# 0x%02X%02X", (($jnum / 94) + 0x21), (($jnum % 94)+0x21);
|
||||
}
|
||||
}
|
||||
|
||||
@map = {};
|
||||
sub readtable()
|
||||
{
|
||||
open(CP932, "<CP932.TXT") || die "cannot open CP932.TXT";
|
||||
while(<CP932>)
|
||||
{
|
||||
if(! /^#/) {
|
||||
($j, $u, $r) = split(/\t/,$_);
|
||||
if(length($j) > 4)
|
||||
{
|
||||
&printsjisto0208($j);
|
||||
print "\t" . $u . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&readtable();
|
Загрузка…
Ссылка в новой задаче