javascript - HTML 和 JavaScript 之间的数据转换是如何工作的?
问题描述
HTML5 文档以 UTF-8 编码,这意味着每个字符 1 字节(8 位)
但是 JavaScript 将字符串编码为 2 字节(16 位),数字编码为 64 位
我的问题是
- JavaScript 是否会在每次读取/写入 HTML 数据时进行转换?(我无法在谷歌上搜索有关此机制的任何明确信息)
解决方案
JavaScript 不涉及此字符转换。它与 DOM 接口交互。DOM 接口使用 UTF-16。其规范指出:
A
DOMString
是 16 位单元的序列。对于 Java 和 ECMAScript,
DOMString
绑定到 String 类型,因为这两种语言也使用 UTF-16 作为它们的编码。
该过程中的第三个参与者是浏览器引擎(例如 Gecko、WebKit...),更广泛地说,是用户代理。浏览器引擎负责实际 HTML 文件/页面与 DOM API(和 CSSOM API)之间的字符编码转换。例如,查看 W3C 在HTML 文档表示方面的内容:
符合标准的用户代理必须正确地将它们识别的任何字符编码中的所有字符映射到 ISO 10646(或者它们必须表现得像他们那样)。
JavaScript 不关心这个。
推荐阅读
- java - 未找到依赖项 'org.springframework.boot:spring-boot-starter-web:2.3.0.RELEASE'
- xamarin.forms - Fody System.OutOfMemoryException
- python - 如何在django中将多个参数传递给url
- sed - 发送 ctrl-c 中断 kubectl+sed 输出,可靠
- find - 使用日期作为文件名并输出为数组查找文件范围
- python - 我们如何检测熊猫数据帧中的不一致?
- reactjs - 如何更改 rsuite DateRangePicker 中菜单的位置?
- google-cloud-platform - Migrate for Compute Engine 不可用
- excel - 用VBA对Excel图表的数据表进行排序
- json - Web2py 将 CSV 文件作为服务参数传递