• 締切済み

SUBMIT時の入力文字のURLエンコードについて

本質的にはPerlではないのですが、Perlの 処理中で起こったのでこちらで・・・・ 現在FAQページとFAQを登録するページがあり、 入力 → 確認 → 登録・完了 という流れでページの移行を行っています。 #ちなみにShift_JISです。 日本語だけでなく英語でのFAQを登録する際 『Ω』を入力したかったのですが、当然全角は無理 なので『&Omega;』で登録しました。 が、登録し終わったDBを見ると『Ω』で登録されていました。 そこで、処理を追いかけていて気づいたのですが 確認画面でhiddenとして入れておいた"&Omega;"が POSTされた時点で『Ω』(をURLエンコードしたもの)に 変わっていました。 検証(とりあえずShift_JIS)の為 <form method=GET> <INPUT TYPE="text" name="data1" value=""> <INPUT TYPE="hidden" name="data2" value="&Omega;"> <INPUT TYPE="submit" value="submit"> </form> というフォームを作って、data1に『&Omega;』と 入力してsubmitを行うと ?data1=%26Omega%3B&data2=%83%B6 と、data2はすでに『Ω』に変換されています。 同じく、EUC-JPでもコードこそ違え、同様でした。 西ヨーロッパ言語などの場合、『&#937;』に 変換された状態でうまく(?)行きます。 ブラウザ依存かと思い、IE6,Opera8.5で確認しましたが 同じでした。 これはsubmitでの仕様なのでしょうか? 対応は無理やりやるつもりですが、こうすれば 簡単にできるという事がありましたら教えていただけると ありがたいです。

みんなの回答

noname#19175
noname#19175
回答No.2

ANo.1の補足として、、、 <INPUT TYPE="hidden" name="data2" value="&amp;Omega;"> とすると、&Omega;(をURLエンコードした物)が送られます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>これはsubmitでの仕様なのでしょうか? HTML4.01 で&Omega; が特殊文字として登録されているから HTML中で記述した&Omega; は、そのように扱われます。

関連するQ&A