2004年03月18日
Perl でひらがなをカタカナに変換する
EUC限定で全角のみに対応。
sub hiragana2katakana{ my $ascii = '[\x00-\x7F]'; my $twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]'; my $threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]'; my @chars = $_[0] =~ /$ascii|$twoBytes|$threeBytes/og; my $ret; foreach(@chars){ if(/^\xA4([\xA1-\xF3])$/){ $ret .= "\xA5".$1; } else{ $ret .= $_; } } return $ret; }
出力例
print &hiragana2katakana("出力例はこんな感じ"); # 出力例ハコンナ感ジ
参考にしたページは...
- 文字単位に分割する@Perlメモ
- JIS X 0208 文字コード表
- 文字コードとエンコーディング (2)@ネットワークプログラミングの基礎知識