※ ChatGPTを利用し、要約された質問です(原文:半角カナを検出したい)
このQ&Aのポイント
フォーム入力の半角カナを検出または全角に変換したいです。
半角カナを検出するためにjcode.pl,v 2.6を使用していますが、うまくいきません。
Perlのコードを使ってフォーム入力の半角カナを検出し、必要に応じて全角に変換する方法を教えてください。
フォーム入力の半角カナを検出または全角に変換したいです。
ここで同じような質問をいくつかみて、いろいろ試しましたが
どうもうまくいきません。
jcode.pl,v 2.6です。
デコード部分は以下のようになってます。
#!/usr/bin/perl
require 'jcode.pl';
print "Content-type: text/html\n\n";
$request_method=$ENV{'REQUEST_METHOD'};
if($request_method eq "POST"){
read(STDIN,$query_string,$ENV{'CONTENT_LENGTH'});
}else{
$query_string=$ENV{'QUERY_STRING'};
}
@pairs=split(/&/,$query_string);
foreach $pair(@pairs){
($key,$value)=split(/=/,$pair);
$key=~ tr/+/ /;
$key=~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
&jcode'convert(*key,'sjis');
$key=~ tr/,/_/;
$value=~ tr/+/ /;
$value=~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
&jcode'convert(*value,'sjis');
$value=~ tr/,/_/;
$input{$key}=$value;
}
よろしくお願いします。
お礼
お返事遅くなってすみません。 ご回答ありがとうございます。 試してみました。 だいたいは変換できたのですが、一部の半角カナが 化けてしまいました。