■ISO Lathin 1 文字コード変換
CGIにフォームで送信するのと同じようにエンコードする場合に便利なメソッドとして escape(str) がありますが、ネットスケープにおいてはフォームと同様のエンコードをしてくれるのに対して インターネットエクスプローラではユニコード(?)形式に変換され、そのままでは使えないので ネットスケープと同等の escape(str) 機能を得るJavaScriptを作りました
元のテキスト
escape(str)
の場合
escape2(str)
の場合
■使い方
1)JSファイルを読み込む
<script src="escape2.js"></script>
2)escape(str)の代わりにescape2(str)を使う

■応用例
1)ページをリロードや変更することなくサーバのデータをアップデートする
画像を読み込む時にパラメータを渡す(別途CGIが必要)
document.ImageName.src = 'http://www.YourDomain.com/UpdateImage.cgi?CODE=' + escape2('更新内容だよ');
2)JavaScriptでクッキーへ格納する場合に2バイト文字の値をCGI側で取得きる形式にする
document.cookie = 'ONAMAE='+escape2('山田太郎');

■補足
1)通常はフォームから2バイト文字(全角)を送信した場合、2バイト目のコードが 半角アツファベット・半角@・半角_と同じ場合 (@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz) はコードではなく文字で出力されますがインターネットエクスプローラでescape2(str)を使った 場合はコードで出力します
文字に変換してもよいのですが、変換効率が落ちるのとCGIが受け取れば結果は同じなので コードで出力するようにしています
2)フォームからの送信とescape(str)との相違点として半角スペースと半角+の取り扱いが 異なるのでescape2(str)ではフォーム送信に準じてます

戻る