charset

a 要素、link 要素、 xml-stylesheet 処理指令 charset 属性 (HTML)

[1] HTMLa 要素・link 要素の charset 属性は、 リンクで指定された資源文字符号化ヒントを指定します。

[13] xml-stylesheet 処理指令charset 擬似属性は、 参照されているスタイル・シート文字符号化ヒント (advisory) を指定します >>14

[12] この属性は追加された当時は有用であろうと考えられていましたが、 結局有意義に使われたことはほとんど無く、しかも Web の技術的体系においては実際上不要な存在です。

代替

[19] リンク先応答文字コードは、リンク先応答Content-Type: ヘッダーで指定するべきものです。 リンク元に書く必要はありません。

仕様書

[8]

属性値

データ型

[4] この属性は %Charset です。つまり、 IETF charset を指定します。 SGML 的には CDATA です。

[15] xml-stylesheet 処理指令では、属性値妥当な文字符号化名でなければなりません >>14

既定値

[5] この属性は省略可能です。

[16] xml-stylesheet 処理指令の仕様では既定値は明示されていません。

処理モデル

[18] xml-stylesheet 処理指令の場合、 charset 擬似属性の値は、他の出典 (HTTPスタイル・シート自体など) からの文字符号化の情報がない場合に限って使われることが想定されています >>14

歴史

[7] HTML 由来で DTBooklink 要素にもありました。

HTML5

[11] 一時期 HTML5 の仕様書にはコメント化された形で link 要素charset 属性の規定が含まれていましたが、 後に削除されています。

xml-stylesheet 処理指令

[17] 第1版では HTML4.0 を参照する形で定義されていましたが、第2版では独自に定義しています >>14

関連

[2] この属性は href 属性 (script 要素では src 属性) が指定されているときのみ使って構わないはずですが、 HTML 4 仕様書にはそう明記されていません。

[3] ウェブでは、リンク先資源自体が charset 情報を持っているのが普通です。 UA は charset 属性の情報を使ってごみを表示してしまわないように注意するべき、 最低警告するべきだと HTML 4 仕様書は言ってはいますが、 あくまでも charset 属性はリンク先に飛ぶ前に利用者や UA が判断するための材料として用意されているようで、 リンク先資源の charset 情報を上書きできるようなものではありません。

とはいうものの、 charset の値から HTTPAccept-Charset を生成するような使い方をしても面白いかもしれません。

[6] a によるリンクの例 HTML 4 12.2

For more information about W3C, please consult the 
<A href="http://www.w3.org/" charset="ISO-8859-1">W3C Web site</A> 

皮肉なことに W3C のウェブ頁はその後 ISO-8859-1 ではなくなっています。

メモ

[9] Bug 4864 - ステータスバーにURLを表示する仕様の改善 http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=4864

状態棒URIを表示するときに百分率符号化復号するにあたり、charset属性があれば、その文字コードと考えて復号したらよいのではという話。 (名無しさん [sage] 2005-12-25 13:05:37 +00:00)

[10] あるいは、href非URI文字が含まれているときにcharset属性文字コード百分率符号化してURIを作るのがよいとか。