* _charset_ hack
[1] [[IE]] には [CODE(HTML)[<[CODE(HTMLe)[[[input]]]] [CODE(HTMLa)[[[type]]]]="[[hidden]]" [CODE(HTMLa)[[[name]]]]="_charset_"/>]] を [CODE(HTMLe)[[[form]]]] 要素中に潜ませておくと [CODE(ABNF)[[[query]]]] や [CODE(MIME)[[[application/x-www-form-urlencoded]]]] に [CODE(URI)[_charset_=[VAR[charset 名]]]] を入れてくれるという機能があります。 ([[WinIR5]]+)
[2] ''Bug 18643 - add support for _charset_ field in form submissions [form sub]'' : [[Mozilla]] でも実装しようかどうしようか、という話題。
実装されたみたいです。
[3] この hack、 [[WinIE3]] とかの古いブラウザは黙って
[SAMP(URI)[_charset_=&other-param=value]]
にしてくれるから安心・・・と思いきや、
[[NC]] 4.01 で試してみたらなぜか
[SAMP(URI)[_charset_=++&other-param=value]]
になりました。
[WEAK[[CODE(HTMLa)[value]] なしの [CODE(HTML)[hidden]] form control はどんな [CODE(HTMLa)[name]] でもこうなります。]]
HTML の仕様上、この文脈で
[CODE(HTMLa)[value]]
は本来必須なのですから、それが欠けている場合にどうなろうと実装依存なのでしょうけど、
なんでわざわざ [SAMP(URI)[++]]
なんかを補うのか謎です。不具合でしょうかねぇ。
・・・という、未対応 UA
の挙動が確定しないという問題がありますから、
_charset_ hack の信頼は避けた方が無難です。
例えば、鯖内で動くスクリプトの文字コード変換ルーチンを通す時には、
あらかじめ _charset_ 値を確認して、
明らかに異常な場合は捨てないと、
誤動作する虞があるでしょう。
[4] [CITE@en-GB-x-Hixie[Web Forms 2.0]] ([TIME[2009-01-05 20:07:15 +09:00]] 版)