ばけらの HTML リファレンス(未完成)

bakera.jp > 鳩丸リファレンス > ばけらの HTML リファレンス(未完成) > 属性一覧 > accept-charset属性

accept-charset属性

属性名バージョン属性値既定値備考
accept-charset4.0, X1.0, X1.1%Charsets;#IMPLIEDlist 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で送信されることになります。

最近の日記

関わった本など