BMP是基本的多语言平面
根据JavaScript:好的部分:
JavaScript是在16位字符集的时候构建的,因此JavaScript中的所有字符都是16位宽.
这让我相信JavaScript使用UCS-2(不是UTF-16!)并且只能处理U + FFFF以前的字符.
进一步调查证实了这一点:
> String.fromCharCode(0x20001);
Run Code Online (Sandbox Code Playgroud)
fromCharCode
返回Unicode字符时,该方法似乎只使用最低16位.试图获得U + 20001(CJK统一表意文字20001)而不是返回U + 0001.
问题:是否可以在JavaScript中处理后BMP字符?
2011-07-31:来自Unicode支持Shootout的第 12个幻灯片:好的,坏的,以及(大部分)Ugly很好地解决了与此相关的问题:
(您需要Firefox或Safari才能在代码中看到表情符号.)
我想带一串表情符号并用个别角色做点什么.
在JavaScript中,"?".length == 13
因为"?"
长度为1,其余为2.所以我们做不到
s = string.split("");
c = [];
c[0] = s[0]+s[1];
Run Code Online (Sandbox Code Playgroud)