Encoding 表情符号值范围

Encoding 表情符号值范围,encoding,utf-16,emoji,Encoding,Utf 16,Emoji,我试着从一个字符串中取出所有表情符号(就像消毒剂一样)。但我找不到一套完整的表情符号值 表情符号的UTF16值的完整集合是什么?如果你只处理英语字符和表情符号,我认为这是可行的。首先将字符串转换为UTF-16字符,然后检查值大于0xD800的每个字符(对于表情符号,它实际上大于等于0xD836)是否应为表情符号 这是因为“”和英文字符(以及许多其他字符不在此范围内) 但因为表情符号的代码点是从它们的UFT-16开始的,所以它的值实际上在这个范围内 如果您不想自己动手,请在此处查看一个符号。Uni

我试着从一个字符串中取出所有表情符号(就像消毒剂一样)。但我找不到一套完整的表情符号值


表情符号的UTF16值的完整集合是什么?

如果你只处理英语字符和表情符号,我认为这是可行的。首先将字符串转换为UTF-16字符,然后检查值大于0xD800的每个字符(对于表情符号,它实际上大于等于0xD836)是否应为表情符号

这是因为“”和英文字符(以及许多其他字符不在此范围内)

但因为表情符号的代码点是从它们的UFT-16开始的,所以它的值实际上在这个范围内

如果您不想自己动手,请在此处查看一个符号。

Unicode标准是一个表情符号列表():

我相信您会希望删除此文档中列出的每个字符,这些字符的
默认表情符号样式为
表情符号

除了引用这样的定义列表之外,没有其他方法可以识别Unicode中的表情符号。正如常见问题所述,它们分布在不同的块中。

unicode范围:U+0080-02AF,U+0300-03FF,U+0600-06FF,U+0C00-0C7F,U+1DC0-1DF,U+1E00-1EFF,U+2000-209F,U+20D0-214F,U+2190-23FF,U+2460-25FF,U+2600-27EF,U+2900-29FF,U+2B00-2BF,U+2C60-2C7F,U+2E00-3000F,U+4C00-FE00,U+FE30-FE4F、U+1F000-1F02F、U+1F0A0-1F0FF、U+1F100-1F64F、U+1F680-1F6FF、U+1F910-1F96B、U+1F980-1F9E0;

我已经根据乔和医生的情况编制了一份名单。谁的答案是:

U+00A9, U+00AE, U+203C, U+2049, U+20E3, U+2122, U+2139, U+2194-2199, U+21A9-21AA, U+231A, U+231B, U+2328, U+23CF, U+23E9-23F3, U+23F8-23FA, U+24C2, U+25AA, U+25AB, U+25B6, U+25C0, U+25FB-25FE, U+2600-27EF, U+2934, U+2935, U+2B00-2BFF, U+3030, U+303D, U+3297, U+3299, U+1F000-1F02F, U+1F0A0-1F0FF, U+1F100-1F64F, U+1F680-1F6FF, U+1F910-1F96B, U+1F980-1F9E0

每个新版本的Unicode表情符号都会更新表情符号范围。以下范围适用于13.0版

这是我的代码的高级版本

def is_包含表情符号(unicode中的p_字符串):
"""
该函数不是在表情符号查找词典中搜索文本的所有字符,而是
检查文本中的任何字符是否在unicode表情符号范围内
它比查找大文本的词典快得多
但是,它只告诉文本是否包含表情符号。它不会返回找到的表情符号
"""
范围_min=ord(u'\U0001F300')#127744
范围_max=ord(u'\U0001FAD6')#129750
范围最小值2=126980
范围(最大值)2=127569
范围最小值3=169
范围_最大值_3=174
范围最小值4=8205
范围最大值4=12953
如果p_字符串采用unicode格式:
对于p_字符串中的_字符\u unicode:
字符代码=ord(字符)

如果range_min是所有与UTF相关的内容的权威指南。如果你阅读了,它会说:“表情符号分布在许多Unicode块中”,这在中很明显,因此你不能使用单一的范围检查来过滤它们,你必须检查多个范围,甚至是特定的值。谢谢,Jongware和Remy。但我只是好奇有没有一个我可以直接使用的范围列表。因为有1000个以上的表情符号,所以需要一段时间才能从图表中找出你处理问题的错误范围。表情符号/unicode非常复杂,单个表情符号可能由多个utf16代码点组成。你想要达到的最终结果是什么?您的结束字符串是否只包含字母数字字符?我认为您可以更轻松地定义允许的字符集,并使用您选择的语言/函数枚举/过滤字符串。嗨,秋朗,谢谢您的回答,尽管我认为它不正确。一个简单的反例是,它不属于您提供的范围,而是一个表情符号。另外,我不仅会说英语,还会说多种语言。是的,我知道那个表情符号。但大多数表情符号都属于我所说的范围。只有两个不是,应该很容易处理检查这里,只有少数被称为Dingbats Block,正如你所看到的,这不是你提供的wiki页面上的完整列表。所以我认为这不容易处理。还有其他块不属于您提到的范围,但属于表情块。我只是想知道是否有一个完整的列表或一些规则。emoji-data.txt表。看这是一份报告你的消息来源是什么?我很想知道是否能够及时更新此列表。此列表似乎太宽。例如,0300-03FF范围包含变音符号、希腊字母等,但没有表情符号。良好的开端,但不幸的是,U+20E3也显示了这方面的问题:一些表情符号是由多个代码点创建的:
U+00A9, U+00AE, U+203C, U+2049, U+20E3, U+2122, U+2139, U+2194-2199, U+21A9-21AA, U+231A, U+231B, U+2328, U+23CF, U+23E9-23F3, U+23F8-23FA, U+24C2, U+25AA, U+25AB, U+25B6, U+25C0, U+25FB-25FE, U+2600-27EF, U+2934, U+2935, U+2B00-2BFF, U+3030, U+303D, U+3297, U+3299, U+1F000-1F02F, U+1F0A0-1F0FF, U+1F100-1F64F, U+1F680-1F6FF, U+1F910-1F96B, U+1F980-1F9E0