UTF-16
一种使用 16 位编码单元的 Unicode 编码方式,被 JavaScript、Java 和 Windows 内部使用。
UTF-16 是一种使用 16 位 (2 字节) 编码单元表示 Unicode 字符的编码方式。基本多语言平面 (BMP) 中的字符使用 2 个字节,BMP 之外的字符使用代理对 (4 个字节)。
JavaScript 字符串在内部以 UTF-16 表示。因此 String.length 返回的是 UTF-16 编码单元的数量,表情符号等 BMP 之外的字符会被计为 2。JavaScript 字符串处理书籍详细解释了这些细节。
UTF-16 有两种字节序:大端序 (UTF-16BE) 和小端序 (UTF-16LE)。文件开头的 BOM (字节顺序标记) 用于标识使用的字节序。
虽然 UTF-8 是 Web 标准,但 Windows 内部 API、.NET 和 Java 使用 UTF-16。编程与字符编码书籍讨论了 UTF-16 和 UTF-8 的使用场景。