我正在为一个项目生成 Javascript 文件。代码使用 UTF8 保存在 JS 文本文件中。此代码可能包含包含重音字符的字符串。这些字符串可以分段显示,因此我使用StringEscapeUtils
Apache Commons 对它们进行了 html 转义。
从这里开始,我认为这种做法对于使用 UTF8 的 HTML 文档是安全且足够的,但是对于导入的 javascripts 呢?它们是否“继承”与引用 html 文档相同的格式?
我正在为一个项目生成 Javascript 文件。代码使用 UTF8 保存在 JS 文本文件中。此代码可能包含包含重音字符的字符串。这些字符串可以分段显示,因此我使用StringEscapeUtils
Apache Commons 对它们进行了 html 转义。
从这里开始,我认为这种做法对于使用 UTF8 的 HTML 文档是安全且足够的,但是对于导入的 javascripts 呢?它们是否“继承”与引用 html 文档相同的格式?
字符集是隐含的,从HTML 4.01 规范的这个 DTD 片段中可以看出:
<!ELEMENT SCRIPT - - %Script; -- script statements -->
<!ATTLIST SCRIPT
charset %Charset; #IMPLIED -- char encoding of linked resource --
type %ContentType; #REQUIRED -- content type of script language --
src %URI; #IMPLIED -- URI for an external script --
defer (defer) #IMPLIED -- UA may defer execution of script --
>
浏览器将使用的实际字符集将是在字符集标题中传入的字符集(如果提供的话)并且元素本身没有charset
属性。
如果要确保使用正确的字符集,请将其放在脚本元素声明中:
<script charset="UTF-8" ... ></script>