在 HTML 中,脚本元素具有可选的 charset 属性。
它的目的是什么?
什么时候有用?
如果您的 javascript 文件使用与页面使用的编码不同的编码进行编码,您可以使用该charset
属性告诉浏览器如何解释它。
例如,如果页面使用的是Latin1
,但 JS 文件是使用UTF-8
.
该charset
参数的目的是在 HTTP 协议级别未指定编码的情况下指定外部脚本的编码。它并不是要覆盖 HTTP 标头中的编码信息,它也不会这样做。
当作者无法控制 HTTP 标头并且标头未指定字符编码时,这很有用。它对于离线文件也很有用,例如在直接访问的网页的本地副本中,而不是通过 HTTP 服务器,因此不存在 HTTP 标头。
在实践中,它不是很有用。如果需要在 JavaScript 文件中使用非 Ascii 字符,可以使用 UTF-8 编码。如果您使用带有前导 BOM 的 UTF-8,则 BOM 充当一个有用的指示器,让浏览器推断编码。但额外使用也无妨charset=utf-8
。
每个 JavaScript 文件都是页面中的一个单独元素,毕竟您甚至可以从某个远程作者的服务器加载 JS,否则它们与您的页面完全没有关系。与任何其他外部元素一样,如果远程服务器由于某种原因或只是为了确定返回错误的字符集,您可以手动指定“字符集”。
此外,如果您自己对此 JS 文件具有写入权限,您可能希望将所有非 ASCII 替换为 Unicode 位置转义 - 这将保证符号将始终被正确解释,无论标头中指定什么编码。一些 JS 压缩器,例如 Google Closure Compiler,可以自动为您完成。