データ受信テスト


テストフォーム

UFT-8 URLエンコードで送信 UFT-8で保存されたHTMLのフォームから送信、受信を行います。
Shift-JIS (A)URLエンコードで送信 加工をせずにフォームのデータをそのまま送信します。
受信したデータはunescape()しています。decodeURIを使うとエラーが発生します。
(B)escapeして送信

送信直前にテキストフィールドのデータをescape()で書き換えてから、送信しています。
受信したデータは2回unescape()しています。

(C)encodeURIして送信 送信直前にテキストフィールドのデータをencodeURIして、変数にURLエンコードと同じ文字列を入れています。
送信にはsubmitを使わず、変数の文字列を直接URLに出力しています。
受信したデータはdecodeURI()しています。
(D)仮想フォームの送信 JavaScriptを使ったフォームの送信(エンコード処理なし)

エンコードの違い

表示例:
URLエンコード(ShiftJIS): textfield=%83e%83X%83g
URLエンコード(UFT-8): textfield=%E3%83%86%E3%82%B9%E3%83%88
escape(): textfield=%u30C6%u30B9%u30C8
encodeURI(): textfield=%E3%83%86%E3%82%B9%E3%83%88

文字コード

「テ」の文字コード番号 JIS:2546 Shift-JIS:8365 区点コード:00538 ユニコード:U+306C

Shift-JISの場合、「テ」を1バイト毎に分けてから、それぞれをエンコードしています。エンコードは英数字及び記号の一部はそのままなので、 英数字にない上位を「%83」とし、下位は「%65」にせず「e」として認識するため、「%83e」となっています。
参照:http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1


戻る