581. Re: use encoding 'Shift_JIS' 下で受け取ったフォームデータ


番号順一覧Top スレッド順一覧Top
作者: Bruce.
日時: 2005/9/6(16:21)
Bruce.です。

Zazelさんが書くのを待っていたのですが ;-)

藤岡和夫 writes:

> 毎度お世話になります。
> 
> 続けて、encoding関連で疑問が出てきましたのでご指導ください。
> 
> 下記のような簡単なHTMLフォームから入力データを受け取って、表示するだけで
> すが、パターンマッチングで条件分岐するというスクリプトです。
> 
> フォームで"藤岡"と入力してもパターンマッチがマッチしません。$in{'name'}
> eq "藤岡"とすると意図どおりに条件分岐するのですが・・・

eq で 条件が真になる理由がわかりませんが(入力文字列がupgradeしてから
比較されてる?)、フォームから持ってきた“藤岡”という文字列と、スクリ
プト中の“藤岡”という文字列の文字コードが違うのが原因ではないでしょ
うか? あくまでもスクリプト中の文字列はPerlの内部コードにupgradeされて
いることにご注意。

$name = decode('sjis', $in{'name'});
if($name =~ /藤岡/){

のようにしてやると期待通り、条件は真となりました。

いじょ。
前の発言: 580. use encoding'Shift_JIS'下で受け取ったフォームデータ [藤岡和夫] 2005/9/05(22:42)
後の発言: 582. Re: use encoding 'Shift_JIS' 下で受け取ったフォームデータ [藤岡和夫] 2005/9/06(18:02)
親発言: 580. use encoding'Shift_JIS'下で受け取ったフォームデータ [藤岡和夫] 2005/9/05(22:42)
子発言: 582. Re: use encoding 'Shift_JIS' 下で受け取ったフォームデータ [藤岡和夫] 2005/9/06(18:02)
        583. Re: use encoding 'Shift_JIS' 下で受け取ったフォームデータ [藤岡和夫] 2005/9/06(22:19)