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)@ネットワークプログラミングの基礎知識