CGI-BBS > CGI > Perl > デコードに関して


カレッヂ
カレッヂ


質問者 kkazz  投稿日 4/10(火) 14:32:59
Windows9Xをサーバーにし、AN-httpdを利用しています
Perlとしては、ActivePerlを使っています
FORM内にボタンを設置し「スクリプト?パラメータ=値」の形で
再度、自分自身のスクリプトを呼び出す処理を行っています

呼び出し時にはパラメータに対する値として正常に日本語(2バイト系文字)が
入っているにも関わらず、呼び出し先では$ENV{'QUERY_STRING'}時点で
既に文字化けが起こっています
(試した結果「あ」は「B」となっていました)

クライアントもサーバーも全てWindowsなのでスクリプト自体はSJISにて
作成しており、FORMの文字コード変換等をいっさい行っておりません
また、デコードとして
  変数 =~ tr/+/ /;
  変数 =~ s/%(a-fA-F0-9][a-fA-F0-9]/pack("C",hex($1))/eq;
を行っています
(もっとも、デコード前から「あ」が「B」1バイトに変化していますが)

先輩諸氏からのアドバイス等をいただければ、幸いと思います
よろしくお願い致します
回答者 羊相談員  [削除]  投稿日 4/12(木) 19:40:10
ソース全体を見なければ
原因を特定するのは難しいかもしれません。

返信(回答)する


Web裏技