POSTされる文字列のencoding問題
掲示板などをはじめ,フォームから日本語を入力してsubmitしてサーバ側で処理をさせるような処理を行う場合,大昔のWebブラウザは日本語化が無理矢理だったりした関係で,ブラウザによってPOSTされる文字列のencodingがまちまちだった。このため,多くのブラウザに対応するとなると,受け取る側は自動判定をはじめ小技がいろいろ必要だった。
例えば任意の文字列のEUC-JP/Shift_JISの自動判別を完全に行うことは不可能である。ここでhiddenで適当な文字列を埋め込んで,その文字列を使ってencodingを調べるといった方法もあったが,hiddenと通常の入力フォームでそれぞれ違うencodingで送るブラウザもあったり。User-Agentを見て判定の優先順位を変えるとか涙ぐましい努力をしているものもあったが,新しいブラウザがまた違うパターンだったりしてぶち壊しだったり。
最近のWebブラウザだとだいたいフォームのHTMLのcharsetと同じものを用いるので,下手に自動判定等はしない方がいいようである。
ところで,最近のWebブラウザは英語や日本語以外の多言語を取り扱うことができる。EUC-JPで書かれたHTMLのフォームにEUC-JPにはない(ASCIIにもJISX0208にもない)文字を書くとどうなるか。
…