データ受信テスト

テストフォーム

URLエンコードの違いと、S-JISにおける送信時のエンコードによる違いを調べる。

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

その他の受信テストフォーム

Shift-JIS フォームの送受信テスト フォームおよびJavaScriptによるCGI受信フォームへの送信
テストフォーム1 テストフォームからCGI受信フォームへ送信(POST)
テストフォーム2 テストフォームからCGI受信フォームへ送信(GET)
テストフォーム3 テストフォームからHTML受信フォームへ送信
テストフォーム4 テストフォームからメールでの送信
HTML受信フォーム HTMLによる受信専用フォーム
CGI受信フォーム CGIによる受信専用プログラム
UTF-8 テストフォーム1 テストフォームからCGI受信フォームへ送信(POST)
テストフォーム2 テストフォームからCGI受信フォームへ送信(GET)
テストフォーム3 テストフォームからHTML受信フォームへ送信
テストフォーム4 テストフォームからメールでの送信
HTML受信フォーム HTMLによる受信専用フォーム
CGI受信フォーム CGIによる受信専用プログラム
onSubmitの送信テスト onSubmit中のユーザー関数でのエラーテスト

戻る