𝌆的长度
console.log('𝌆'.length)的长度看起来应该为1,但我打印出来却是为2。为什么这样?具体来说:
UTF-16 有两种长度:对于码点在U+0000到U+FFFF之间的字符,长度为16位(即2个字节);对于码点在U+10000到U+10FFFF之间的字符,长度为32位(即4个字节),而且前两个字节在0xD800到0xDBFF之间,后两个字节在0xDC00到0xDFFF之间。举例来说,码点U+1D306对应的字符为𝌆,它写成 UTF-16 就是0xD834 0xDF06。刚刚好
参考资料:
浙公网安备 33010602011771号