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