相关疑难解决方法(0)

BMP之外的JavaScript字符串

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很好地解决了与此相关的问题:

javascript unicode utf-16 surrogate-pairs astral-plane

38
推荐指数
1
解决办法
1万
查看次数

如何将表情符号与R正则表达式相匹配?

我想确定我的vector的哪些元素包含表情符号:

x = c('', 'no', '', '', 'no', '', '?', '??')
x
# [1] "\U0001f602" "no"         "\U0001f379" "\U0001f600" "no"         "\U0001f61b" "?"         "??"
Run Code Online (Sandbox Code Playgroud)

相关帖子只涵盖其他语言,因为大部分都是指专业图书馆,我无法想出一种翻译成R的方法:

第二个看起来很有希望,但唉(不是通过提供固定perl = TRUE):

x[grepl('[\u{1F600}-\u{1F6FF}]', x)]
Run Code Online (Sandbox Code Playgroud)

错误:无效\ u {xxxx}序列(第1行)

类似的问题来自其他问题.我们怎样才能匹配R中的表情符号?

regex r utf-16 emoji

8
推荐指数
1
解决办法
2153
查看次数

标签 统计

utf-16 ×2

astral-plane ×1

emoji ×1

javascript ×1

r ×1

regex ×1

surrogate-pairs ×1

unicode ×1