#! /usr/local/bin/perl require 'jcode.pl'; # http://www.rtpro.yamaha.co.jp/RT/FAQ/kanji-kuten.html while(<>) { $kuten = $_; $sjis = &kuten2sjis($kuten); undef $chr; $chr = pack("n",$sjis); &jcode'convert(*chr,"euc", "sjis"); printf("%x($chr)\n>", $sjis); } sub kuten2sjis { local($ku) = @_; local($n1) = int($ku/100); local($n2) = $ku%100; local($n11, $r1,$r2); $n11 = int($n1/2); if(0<($n1%2)) { if($n1 < 63) { $r1 = $n11 + 0x81; } else { $r1 = $n11 + 0xc1; } $r2 = $n2 + 0x3f; if(63 < $n2) { $r2++; } } else { if($n1 < 63) { $r1 = $n11 + 0x80; } else { $r1 = $n11 + 0xc0; } $r2 = $n2 + 0x9e; } return ($r1 * 0x100 + $r2); }