人生のプチ美学を教えてください!!

フォーム入力の半角カナを検出または全角に変換したいです。
ここで同じような質問をいくつかみて、いろいろ試しましたが
どうもうまくいきません。
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;
}

よろしくお願いします。

A 回答 (2件)

&jcode'h2z_sjis(*key);


&jcode'convert(*key,'sjis');
(snip)
&jcode'h2z_sjis(*value);
&jcode'convert(*value,'sjis');

Win2k + Perl5.0 + jcode.pl v2.13でちょこっとだけ確認。
半角カナが含まれていることを検出するだけならh2z_sjisを通したものと通さなかったものを比較すればよいのかな。

以上、自信なしです。環境(jcode.pl)も違うし。
鵜呑みなさらぬようご用心を。
    • good
    • 0
この回答へのお礼

お返事遅くなってすみません。
ご回答ありがとうございます。
試してみました。
だいたいは変換できたのですが、一部の半角カナが
化けてしまいました。

お礼日時:2003/07/07 08:54

文字化けしても”半角カナを検出”という要求は満たすと思うのですが、違うのでしょうか。

また、差し支えなければ文字化けしてしまうデータの例も提示してください。

それと、今更聞くのもあれですが、入力データの文字コードはなんでしょう。(^^;
    • good
    • 0
この回答へのお礼

またのご回答ありがとうございます。
jcode.pl v2.13にしてみたところ
うまくいきました。

お礼日時:2003/07/07 14:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!