#?SuikaWiki/0.9 page-icon="HTML" [1] [[HTML4]] では [[form]]要素の属性で、受信側が受け付ける [[charset]] ([[MIME]]/[[IANA]] の) 名の''[[間隔]]で区切った''一覧です。 () [2] 値の既定値は "UNKNOWN" です。この場合当該 [[HTML]] 文書の [[charset]] が指定されているとみなしてかまいません。 () [3] >>1 のように HTML4 では間隔区切り一覧とされていますが、実際には読点区切りのものもよく見掛けます。 -[4] charset-list = charset *(separator charset) -[5] separator = 1*(html-space / ",") [12] げ。今まで読点区切りだと思ってた。。。 [6] [[HTTP]] の [[Accept-Charset]]:欄とは異なり、 [[qvalue]] の指定とかはありません。 (これと混同されて読点区切りが広まったのかな? さすがに q 値つきのは見たことありませんが。) - [7] 値は charset 名ですから、大文字・小文字は区別されません。 - [8] [[UA]] はこの値をもとに入力可能値を制限してもかまいません。 () - [9] ところで、[[input]]要素の欄などで入力文字列に送信 charset で表せない文字が含まれていた場合、 HTML4 で >>8 のように書かれている以外にはなんとも指定がありません。 [[WinIE]] や [[Mozilla]] の実装では、 ''&#[VAR[n]];'' と [[SGML]] の[[文字数値参照]]風に (もちろん [[UCS]] の符号位置で) 送ってきます。 ([CODE[&]] は [CODE[&]] には'''しません'''。) この仕様は W3C/IETF の仕様書に規定されているものではなく、独自のエラー処理と考えられます。 --[10] これ、 Opera とかは [CODE[?]] にするんで、 どうするべきかって w3c-i18n で話題になってましたね。 [[#comment]] * メモ - [11] [WEAK[2003-10-20 08:51:29 +00:00]] ''[[名無しさん]]'': post - [13] >>11 HTML 4 によれば、 [CODE(MIME)[[[application/x-www-form-urlencoded]]]] は ASCII 文字しか使えませんから、 [CODE(HTMLa)[accept-charset]] の効力も [CODE(HTML)[method=get]] の場合や [CODE(HTML)[post]] でも [CODE(MIME)[application/x-www-form-urlencoded]] の場合には効力がないであろうことが容易に推察できます。実際、 HTML 4 の該当部分では全然 [CODE(HTMLa)[accept-charset]] に触れていません。 - [14] しかしながら、現実の運用 (サーバー側の実装にしろ、 [[UA]] にしろ。) は [CODE(MIME)[application/x-www-form-urlencoded]] を任意のオクテット列として取り扱っています。そして多くの (全ての?) [CODE(HTMLa)[accept-charset]] を実装した UA は、 [CODE(HTML)[get]] や [CODE(MIME)[application/x-www-form-urlencoded]] の場合でも [CODE(HTMLa)[accept-charset]] を参照しています。サーバー側もそれを期待しています。 - [15] こと文字周りに関しては、 HTML の仕様書はほとんど当てになりません。長らく需要に追いついていなかったためです。 [[HTML2.0]] が出る以前から漢字とか実際には平気で使われてたのに、規格は HTML 4 でようやく追いついたくらいですから。[WEAK[余談だけど [[HTML3.2]] では日本語を扱えないから云々の類の話を聞くと嫌になっちゃうね。確かに厳密に [[SGML宣言]]まで見ればその通りだけど、一体それに何の意味があるのか。]]