脚本标记的charset属性的默认值是什么?

Tim*_*man 18 html character-encoding

说我有这样的脚本: <script type="text/javascript" src="myScript.js">

我在网上看到一些消息来源声称如果charset省略该属性,则默认为ISO-8859-1.我见过其他人声称它采用与包含脚本标记的HTML页面相同的编码.真相是什么?

我需要知道,因为我的JavaScript文件包含将插入HTML的文字字符串,其中包括非ASCII字符,如欧元符号(€).我意识到添加一个charset属性或只是编码这些字符的HTML应该可以解决我的问题,但我仍然想了解默认行为.

编辑:为了澄清一点,我不仅要知道标准的含义,还要了解浏览器的实际行为.这里描述的行为:http://joconner.com/2008/09/javascript-file-encoding/似乎表明浏览器并不总是假设ISO-8859-1.

Mar*_*sen 6

w3c有一个浏览器确定char编码的标准方法,你可以在这里阅读:http://www.w3.org/TR/html4/charset.html#spec-char-encoding

总而言之,在确定文档的字符编码(从最高优先级到最低优先级)时,符合要求的用户代理必须遵守以下优先级:

  1. "Content-Type"字段中的HTTP"charset"参数.
  2. META声明,其中"http-equiv"设置为"Content-Type",值为"charset"设置.
  3. charset属性设置在指定外部资源的元素上.

除了此优先级列表之外,用户代理还可以使用启发式和用户设置.例如,许多用户代理使用启发式来区分用于日文文本的各种编码.此外,用户代理通常具有用户可定义的本地默认字符编码,它们在没有其他指示符的情况下应用.

  • @Tim:它只引用脚本文件本身的响应头. (2认同)