半角カタカナ→全角カタカナ変換がうまくいきません。
お世話になっております。
フォームから入力された文字を、
「半角カタカナ→全角カタカナ」変換したいのですがうまくいきません。
コーディングは以下の通りですが、問題の箇所がわかりません。
どなたかご教授ください。
なお、jcode.plは、最新のものを使っています。
#↓===============================================
##### フォームデータ受け取り
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read( STDIN , $buffer , $ENV{'CONTENT_LENGTH'} );
} else {
$buffer = $ENV{'QUERY_STRING'};
}
# 文字コードを正確に取得するために,全ての送信データをいったん文字コードチェックする
$buffer1 = $buffer;
$buffer1 =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
$kcode = &jcode::getcode(*buffer1);
@pairs = split(/&/ , $buffer);
##### フォームデータのデコード、漢字コードをsjisに変換
foreach $pair (@pairs) {
($k,$v) = split(/=/,$pair);
$v =~ tr/+/ /;
$v =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
&jcode'convert(*v,"sjis",$kcode);
# 半角カナを全角に変換
if($kcode eq 'sjis') {
&jcode::h2z_sjis(\$v);
}
if($kcode eq 'euc') {
&jcode::h2z_euc(\$v);
}
if($kcode eq 'jis') {
&jcode::h2z_jis(\$v);
}
$in{$k} = $v;
}
#↑===============================================
(なお、全角スペースは、半角スペースなどに変更願います。)
よろしくお願いします。
お礼
スクリプトをEUCにして、 &jcode::tr(\$data, '0-9A-Za-z-', '0-9A-Za-z-'); と書くとうまくいきました。 ありがとうございました。