HTML5文档以UTF-8编码,这意味着每个字符1个字节(8位)
,但是JavaScript编码2字节(16位)的字符串和64位的数字
我的问题是
答案 0 :(得分:4)
此字符转换不涉及JavaScript。它与DOM接口连接。 DOM接口使用UTF-16。其specification状态:
DOMString
是16位单元的序列。对于Java和ECMAScript,
DOMString
绑定到String类型,因为两种语言也都使用UTF-16作为其编码。
此过程中的第三个参与者是浏览器引擎(例如Gecko,WebKit等),更广泛的是用户代理。浏览器引擎负责实际HTML文件/页面与DOM API(和CSSOM API)之间的字符编码转换。例如,查看W3C在HTML document representation上拥有什么:
符合要求的用户代理必须正确地将他们可以识别的任何字符编码中的所有字符映射到ISO 10646(或者它们必须表现得与之相同)。
JavaScript与此无关。