HTTPクライアント・ブラウザーからHTTPサーバーにデータを送信する場合、2つのコンテンツ・エンコーディング方法を使用できます。
どちらの方法も、クライアント・ブラウザーで使用されるバイト・エンコーディングを識別しないため、文字がASCIIの範囲外の場合、クライアント・データからサーバーのエンコーディングに変換すると、問題になることがあります。
一部のブラウザーではcontent-typeのcharset属性を使用して、サーバーにポストされるINPUT形式データに適用されるデフォルトのクライアント・ブラウザー・エンコーディングを上書きすることが観測されています。
HTMLページがcontent-typeのcharset属性を使用してサーバーから提供された場合、この属性にはHTMLドキュメント内のMetaタグと同じ効果があります。
HTTPクライアント・ブラウザーで使用されるバイト・エンコーディングを制御するには、HTMLドキュメントでMetaタグを使用します。
<head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <head>
charsetの値にutf-8を使用する場合、クライアント・ロケールからのHTML FORMポストは、サーバーによってUTF-8エンコードで受信されます。
メソッド1:multipart/format-data
HTMLソース:
<FORM METHOD="POST" ACTION="http://server1:88/cgi-bin/jsmdirect?upload" ENCTYPE="multipart/form-data"> <INPUT NAME="SONUMBER" TYPE="TEXT" VALUE="12345"/></TD></TR> <INPUT NAME="CUSTNAME" TYPE="TEXT" VALUE="ABC Industries"/></TD></TR> <INPUT NAME="STREET" TYPE="TEXT" VALUE="123 Main St"/></TD></TR> <INPUT NAME="CITY" TYPE="TEXT" VALUE="Chicago"/></TD></TR> <INPUT NAME="POSTCODE" TYPE="TEXT" VALUE="60609"/></TD></TR> <INPUT NAME="FILE" TYPE="FILE" SIZE ="60"/> <INPUT TYPE="SUBMIT" VALUE="Send"/> </FORM>
コンテンツ・タイプ:
multipart/form-data; boundary=---------------------------7d37e321500b2
コンテンツ:
-----------------------------7d37e321500b2Content-Disposition: form-data; name="SONUMBER" 12345-----------------------------7d37e321500b2Content-Disposition: form-data; name="CUSTNAME" ABC Industries-----------------------------7d37e321500b2Content-Disposition: form-data; name="STREET" 123 Main St-----------------------------7d37e321500b2Content-Disposition: form-data; name="CITY" Chicago-----------------------------7d37e321500b2Content-Disposition: form-data; name="POSTCODE" 60609-----------------------------7d37e321500b2Content-Disposition: form-data; name="FILE"; filename=""Content-Type: application/octet-stream ----------------------------7d37e321500b2--
メソッド2:application/x-www-form-urlencoded
HTMLソース:
<FORM METHOD="POST" ACTION="http://server1:88/cgi-bin/jsmdirect?upload"> <INPUT NAME="ORDER" TYPE="TEXT" VALUE="12345"/></TD></TR> <INPUT NAME="CUSTNAME" TYPE="TEXT" VALUE="ABC Industries"/></TD></TR> <INPUT NAME="STREET" TYPE="TEXT" VALUE="123 Main St"/></TD></TR> <INPUT NAME="CITY" TYPE="TEXT" VALUE="Chicago"/></TD></TR> <INPUT NAME="POSTCODE" TYPE="TEXT" VALUE="60609"/></TD></TR> <INPUT TYPE="SUBMIT" VALUE="Send"/> </FORM>
コンテンツ・タイプ:
application/x-www-form-urlencoded
コンテンツ:
ORDER=12345&CUSTNAME=ABC+Industries&STREET=123+Main+St&CITY=Chicago&POSTCODE=60609