au 携帯と enctype="multipart/form-data"

携帯サイトの開発中。PC から動作確認して大丈夫、と思って携帯でアクセスしてみたら、POST した内容が urlencode された状態で表示される。ぐぐってみたところ、au の場合、form タグに enctype="multipart/form-data" をつけるとこの現象が発生する模様。
知らない属性なら無視すればいいのに、au は余分なことをやっている、というブログエントリも発見した。が、やっぱり知らない属性だから無視しているんじゃないかと推測。
つまり、デフォルトの enctype は "application/x-www-form-urlencoded" で、POST した内容は urlencode された状態でサーバに飛ぶ。サーバ側のフレームワーク (たとえば PHP) は enctype を見て urlencode されているのだから、と urldecode してアプリケーションに渡す。一方、enctype="multipart/form-data" の場合、urlencode せず生のデータをサーバに飛ばす。サーバ側のフレームワークは enctype を見て、urldecode の必要はないと判断、そのままアプリに渡す。
というのが通常の HTTP クライアントとサーバ側フレームワークの動き。au 携帯の場合、enctype="multipart/form-data" をつけても、それを解釈せず、"application/x-www-form-urlencoded" として、すなわち urlencode してサーバに送信するのではなかろうか。サーバ側では "multipart/form-data" だと思って、すなわち、urldecode せずにそのままアプリに渡す、ということで。

まてよ。au 携帯からの HTTP リクエストは、ヘッダに multi-part/form-data を付けながら urlencode して送っている、というんじゃないと理屈があわないな。確かめてみよう。
確かに multi-part/form-data がつけられている。
ということらしい。