トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   一覧 最終更新   ヘルプ   最終更新のRSS
 


TIPS

JavaScriptを利用して表示中ページの文字コードと異なる文字コードでFORMを送信する方法

何ともややこしい話ですが、Webの開発をやってると、まま遭遇する話ではあるので、一応メモしときます。

Webサイトを構築する際、HTMLもプログラムもDBも文字コードは一致させるのがセオリーです。(最近はほとんどUTF-8です)
なので、通常は文字化けの問題にさいなまれることは、そんなにありません。(もちろん皆無ではないのですが)
しかし、当然レガシーなWebサイトも多数生き残ってるわけで、Shift_JISやEUCなどの文字コードで作成されているサイトは、残念ながらザラにあります。
そんなEUCで作成されたCGIプログラムに対して、UTF8で作成されたページに配置したFORMタグから情報を送信したい場合、以下のようなJavaScriptを記述する事で、文字化けを回避することが可能です。

やってる内容としては、送信先のCGIに合わせて文字コードをセットして、送信後、元の文字コードに戻しています。
文字コードを元に戻しておかないと、送信後、CGI側の画面に画面遷移し、ブラウザの戻るボタンで戻ると、文字化けが発生します。(多分。。。)

IEの場合

document.charset='EUC-JP';
document.getElementById('FORMタグのID').submit();
document.charset='utf-8';
Firefoxの場合

document.characterSet='EUC-JP';
document.getElementById('FORMタグのID').submit();
document.characterSet='utf-8';

Last-modified: 2009-12-02 (水) 23:26:38 (3303d)