在 JSON 中,可以使用
\uXXXX
表示法对 Unicode 字符进行转义。我假设 XXXX
显然指的是十六进制的 Unicode 代码点。
但是由于只有 4 位数字,这是否意味着无法转义
> 0xFFFF
的代码点?
或者
\uXXXX
实际上并不编码抽象代码点,而是实际上编码UTF-16-BE字节单位?
更新2024年4月28日
一段时间以来,我们可以使用
\u{X}
或 \u{XXXXXX}
等序列来表示代码点,包括大于 0xFFFF 的代码点。
var s = '\u{2f804}';
alert(s + '::' + s.length); // 你::2
应该是
\uXXXX
,是的,可以按照您提到的方式使用高代理和低代理来表示大于0xFFFF的字符。
var s = '\uD87E\uDC04';
alert(s + '::' + s.length); // 你::2