Xah*_*Lee 17 javascript unicode
以下似乎不正确
"".charCodeAt(0); // returns 55357 in both Firefox and Chrome
Run Code Online (Sandbox Code Playgroud)
这是一个名为ROCKET(U + 1F680)的Unicode字符,小数应为128640.
这是为了写一个unicode应用程序.似乎大多数但不是来自unicode 6的所有字符都停留在55357.
我该怎么解决?谢谢.
Dan*_*iel 10
JavaScript使用的是UTF-16编码; 有关详细信息,请参阅此文
BMP之外的字符,例如中心()的U + 1D306四元组,只能使用两个16位代码单元以UTF-16编码:0xD834 0xDF06.这被称为代理对.请注意,代理对仅代表单个字符.
代理对的第一个代码单元始终在0xD800到0xDBFF的范围内,称为高代理或主代理.
代理对的第二个代码单元始终在0xDC00到0xDFFF的范围内,并被称为低代理或跟踪代理.
您可以像这样解码代理对:
codePoint = (text.charCodeAt(0) - 0xD800) * 0x400 + text.charCodeAt(1) - 0xDC00 + 0x10000
Run Code Online (Sandbox Code Playgroud)
可以在charCodeAt的Mozilla文档中找到完整的代码.
试过这个:
> "".charCodeAt(0);
55357
> "".charCodeAt(1);
56960
Run Code Online (Sandbox Code Playgroud)
关于SO的相关问题:
您可能也想看看这个:
归档时间: |
|
查看次数: |
3228 次 |
最近记录: |