寝ている時の鼻づまりに悩むYu-ichiです
前回の記事で予告した通り、もう1つブラウザ依存の問題について書きたいと思います。
つい最近、フォームのページ(HTML)はUTF-8で
受け渡すCGIがShift_JIS(以下SJIS)という環境での作成をする機会がありました。
SJISで作成されたページでフォームに入力し、CGIで受け取ると
そのまま入力された内容が受け取れますが
UTF-8で作成されたページでフォームに入力し、CGIで受け取ると
入力された内容が文字化けしてしまう問題がありました。
入力された内容を文字コード変換でUTF-8→SJISにしてしまえばいいのですが、
今度はCGI画面からブラウザの「戻る」ボタンをクリックするとSJISのまま戻ってしまい
ページ全体が文字化けしてしまうという状況になりました。
この問題はFirefoxでは起きず、IEで起こるようです。
そこで、タグを使ってフォームの文字コードを変換してみました。
</p> <p><form action="CGIのURL" accept-charset="Shift_JIS"></form></p> <p>
フォームタグに「accept-charset」を使って送信時の文字コードを入れます。
Firefoxではすんなり文字コードを変換して受け渡してくれるのですが
やはりといいますか、IEはこの命令を無視してしまい文字化けします。
悩んだ挙句、とりあえずインラインフレームでフォーム部分を埋め込むことにしました。
埋め込む先HTML : UTF-8
埋め込むフォーム部分 : SJIS
こうすることで、とりあえず回避できましたが若干無理やり感が・・・。
使ったCGIがUTF-8に対応していればよかったのに!!
ブラウザも全部仕様を統一できないものですかね?
IE10の話題もでてきていますが、そこのところを対応して欲しいです。