#?SuikaWiki/0.9 - [1] [[WinIE]] も [[Mozilla]] も [[Opera]] も、 [CODE(MIME)[multipart/form-data]] に含まれる[[本体部分]]には [[charsetパラメーター]]を付けてくれません。 (ファイル送信を除いて [CODE(MIME)[[[Content-Type]]]] 欄そのものをつけません。) - [2] Opera は、 [CODE(MIME)[multipart/form-data]] に存在しない [CODE(MIME)[charset]] 引数をつけてきます。この値はそれに含まれる本体部分の[[実体本体]]及び [CODE(MIME)[[[Content-Disposition]]]] 欄の [CODE(MIME)[[[name]]]] 引数に適用されるようです。あ、 [CODE(MIME)[[[filename]]]] にもかな? 今度確かめてみよう。 - [3] 規格不適合ながらもとりあえず >>2 のように情報を送ってくる Opera にたいして、 WinIE と Mozilla は既定では何もしません。ただし、 [CODE(HTML)[[[_charset_]]]] hack を使えば一応は情報を得られます。 - [4] >>2-3 の情報は、 [CODE(HTML)[[[file]]]] として送られる実体本体には適用できません。 (その実体の頭欄には適用されます。) [CODE(MIME)[charset=[[x-unknown]]]] と考えるしかなさそうです。問題は、一般の form data と file を区別する確実な方法がないことです。 IE, Moz, Opera に限れば、 [CODE(MIME)[filename]] 引数の有無で決定できますが。。。 - [5] >>4 あ、確実な方法が1つだけあります。受取る側が名前を知っていること。これ超確実。 - [6] [CODE(XPath)[[CODE(HTMLe)[[[input]]]][@[CODE(HTMLa)[[[type]]]]='file'] ]] があっても、ファイル名が指定されなかった場合には、3 UA とも、空の内容を送りますが、 IE と Moz は [CODE(MIME)[Content-Type: [[application/octet-stream]]]] と書いてきて、 [CODE(MIME)[Content-Disposition]] にも [CODE(MIME)[filename=""]] がつきます。 Opera ではどちらもつかず、本当に空 ([CODE(MIME)[Content-Disposition: [[form-data]]; name=[VAR[名前]]]] と空の内容だけ) になります。