我对编码有点困惑.据我所知,旧的ASCII字符每个字符占用一个字节.Unicode字符需要多少字节?
我假设一个Unicode字符可以包含来自任何语言的每个可能的字符 - 我是否正确?那么每个字符需要多少字节?
UTF-7,UTF-6,UTF-16等是什么意思?它们是不同版本的Unicode吗?
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很好地解决了与此相关的问题:

我正在寻找一个简单的功能,可以删除Instagram评论中的表情符号字符.我现在尝试过的(我在SO和其他网站上找到的示例代码中有很多代码):
// PHP class
public static function removeEmoji($string)
{
// split the string into UTF8 char array
// for loop inside char array
// if char is emoji, remove it
// endfor
// return newstring
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
我从移动设备获得了文本输入.它包含表情符号.在C#中,我将文本作为
Text text
Run Code Online (Sandbox Code Playgroud)
简单地说,我想要输出文本
Text text
Run Code Online (Sandbox Code Playgroud)
我试图用rejex从文本中删除所有这样的表情符号..除了,我不知道如何将该表情符号转换为它的unicode序列..我该怎么做?
编辑:
我正在尝试将用户输入保存到mysql中.它看起来像mysql UTF8并不真正支持unicode字符,正确的方法是通过更改架构,但我认为这不是我的选择.所以我试图删除所有的表情符号字符,然后将其保存在数据库中.
这是我相关专栏的架构:

我使用Nhibernate作为我的ORM,生成的插入查询如下所示:
Insert into `Content` (ContentTypeId, Comments, DateCreated)
values (?p0, ?p1, ?p2);
?p0 = 4 [Type: Int32 (0)]. ?p1 = 'Text text' [Type: String (20)], ?p2 = 19/01/2015 10:38:23 [Type: DateTime (0)]
Run Code Online (Sandbox Code Playgroud)
当我从日志中复制此查询并直接在mysql上运行时,我收到此错误:
1 warning(s): 1366 Incorrect string value: '\xF0\x9F\x98\x80 t...' for column 'Comments' at row 1 0.000 sec
Run Code Online (Sandbox Code Playgroud)
此外,我试图将其转换为编码字节,它并没有真正起作用..

是的,我知道这是一些现有问题的重复。我已经在我的原始问题介绍中通过参考充分承认了这一点。
但是,在 2019 年,该列表扩展到包括额外的 230 个表情符号集,我认为现有答案/范围中没有涵盖这些表情符号。
http://www.unicode.org/Public/emoji/12.0/
我不完全熟悉也不习惯构建要删除的 unicode 范围,所以如果有人知道您可以发布更新版本吗?
根据我的理解,代码有点分散,不能在一个连续的范围内从头到尾轻松定义。
到目前为止,2018 年更新的最佳答案在这里:
text.replace(/([\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, '');
Run Code Online (Sandbox Code Playgroud)
如您所见,我还发布了关于更新列表的评论,但作者尚未更新答案。
其他类似问题:
是否有任何正则表达式用于输入没有表情符号的文本(字母)?
我试图反转正则表达式但它工作不正确
/(?!:\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff])$/g
在这种情况下,如果我输入letters(a-z),则该字符串无效