<script charset>

script 要素 charset 属性 (HTML)

[13] script 要素charset 属性は、外部スクリプト資源文字コードを表します。

代替

[14] この属性自体は廃止されています。 UTF-8 以外の文字コード禁止されており、 それに従っている限り、この属性の出番はありません。 基本的には過去の文書との互換性のためのものなので、 新しい文書では使うべきではありません。

仕様書

意味

[6] charset 属性は、 外部スクリプト資源文字符号化を指定するものです >>3

[16] かつてはヒントとも考えられていましたが、 実際には文字コードの決定に強く関わる指定となっています。

属性値

[22] UTF-8 (ASCII大文字・小文字不区別) でなければなりません >>3

文脈

[8] script 要素の種別が古典スクリプトの時、 指定できました。

[10] ただし src 属性が指定されていなければ、 指定してはなりません >>3

[9] script 要素の種別がモジュールスクリプトデータブロックの時は、 charset 属性を使ってはなりません >>3

[23] 厳密にはUTF-8 以外を禁止する変更の際、 これらの制約は廃止されています (全体として廃止の機能なので、 細かい制約は不要という判断なのでしょう)。

処理

[17] script を参照。

[28] なお、初回処理時の値が使われるので、動的に変更しても、意味を持ちません >>3

HTMLScriptElement インターフェイス charset 属性

[18] HTMLScriptElement インターフェイスcharset IDL属性は、 charset 内容属性反映しなければなりません >>1。これは文字列として反映するものです。

[24] このIDL属性廃止状態にあります。しかし Webブラウザー後方互換性のために実装しなければなりません

歴史

HTML4

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

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

[7] script 要素では、要素の内容には関係しません HTML 4 18.2.1。逆に言えば指定してもいいけど無視されるということでしょうか。

モジュールスクリプト

[15] 2016年に HTML Standard で規定されたモジュールスクリプト (JavaScriptモジュール) では、 charset 属性は使わないこととされました。もはや Web文字コードUTF-8 に統一されており、新機能で過去の文字コードに対応する必要はないとの判断です。

ワーカー導入時に UTF-8 のみ対応とした判断を踏襲しています。

[19] Clarify script encoding fallback ( (Resseguie著, )) <https://github.com/whatwg/html/commit/ffbf252f5b1c9793fd59de9e64045ddebfabf982>

[20] Require UTF-8 (sideshowbarker著, ) <https://github.com/whatwg/html/commit/fae77e3c558b9f083dfb9086752863a4789268f5>

[21] Require UTF-8 (sideshowbarker著, ) <https://github.com/whatwg/html/commit/fae77e3c558b9f083dfb9086752863a4789268f5>

[25] Make <script charset> non-conforming · Issue #3004 · whatwg/html () <https://github.com/whatwg/html/issues/3004>

[26] Require utf-8 when specifying character encoding by sideshowbarker · Pull Request #3091 · whatwg/html () <https://github.com/whatwg/html/pull/3091>