accept-charset属性
属性名 | バージョン | 属性値 | 既定値 | 備考 |
---|---|---|---|---|
accept-charset | 4.0, X1.0, X1.1 | %Charsets; | #IMPLIED | list of supported charsets |
この属性を持つ要素 …… form
accept-charsetの解説
フォームに日本語の文字を入れて送信したりする場合、それは何らかの文字符号化方式でエンコードされて送信することになります。受け側のシステムは符号化方式を自動判別して良きに計らってくれることもありますが、特定の符号化方式でないとうまく処理できない場合もあります。特に最近の blog などには UTF-8 でないと処理できないシステムが多く、トラックバックが文字化けするなどという現象が良く発生します。
HTML4 では、受け側が処理できる文字符号化方式を form要素の accept-charset属性で指定することができます。たとえば、UTF-8 で送信したいような場合は、以下のようにします。
<form action="example.cgi" accept-charset="UTF-8">
複数の符号化方式を列挙することもできます。その場合はカンマもしくはスペースで区切る……と HTML4 には書いてありますが、XHTML1.1 の DTD では "a space separated list of character encodings" とされていますので、スペース区切りの方が無難でしょう。
<form action="example.cgi" accept-charset="UTF-8 Shift_JIS">
……しかし、対応しているブラウザは少ないようです。
なお、DTD ではこの属性の初期値は #IMPLIED となっていますが、HTML4 の仕様では、この値の初期値は "UNKNOWN" という文字列であると定められています。ブラウザの実装としては、フォームの存在するページの文字符号化方式と同じ符号化で処理してくれるようです。たとえば、フォームのページが Shift_JIS なら日本語は Shift_JISで送信されることになります。
- 「accept-charset属性」にコメントを書く