输入法输入表情实际输入的编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入法输入表情实际输入的编码相关的知识,希望对你有一定的参考价值。

大多数emoji表情都是4字节的utf-16编码(为辅助平面字符,另有少部分表情属于2字节的基本平面字符),而我们的mysql数据库采用utf-8,并且最大允许3字节的字符,因此前端提交由用户输入的4字节的emoji表情在存入数据库时会报错。在后台不动的情况下,有一种解决方案就是前端进行处理,将emoji表情转换为字符实体再提交。 参考技术A 本人用的搜狗输入法,输入法自带 ✌️ 等表情,请问这些表情在微信QQ聊天中是如何能被所有设备无差异识别并发出/接收的呢?据我所知应当不是Unicode码。

如何检查和编码来自 Facebook Messenger 的输入表情符号?

【中文标题】如何检查和编码来自 Facebook Messenger 的输入表情符号?【英文标题】:How to check and encode input emojis from Facebook messenger? 【发布时间】:2016-10-07 14:10:16 【问题描述】:

我正在用 Python 构建一个 Facebook Messenger 机器人。一切正常。但是,如果我将emojis 作为文本从 Facebook 聊天发送到 API,那么它就会出错。 这是我从 Facebook 发送 emojis 时的示例。

'message': 'mid': 'mid.1475846223244:e7eea53884', 'seq': 10863, 'text': '????????',

所以received_message = message['message']['text']。 我想要的是每当我从 Facebook 发送(表情符号)non text message 时,我可以在将其发送到我的 API 之前对其进行扫描和编码。在问这个问题之前我已经阅读了文档,但其中大多数是来自用户的emojis,而不是所有扫描仪并编码任何emojis(如果我遗漏了什么,请纠正我,因为我是新手)。告诉我是否需要更新我的问题。

【问题讨论】:

你能发一个repl你的'text'值,或者给出unicode代码点吗? 对不起,我没看清楚你的问题? “文本”值是我从 Facebook 发送的任何内容,如果“文本”不是 string,我想将其编码为 un​​icode。 【参考方案1】:

您可以使用 unicode 代码点和 ASCII 表示之间的映射。在此处查看此类表:http://lolhug.com/facebook-emoticons/

官方表情表在这里:http://unicode-table.com/en/blocks/emoticons/

库Emoji 可以帮助您转换表情符号。

【讨论】:

感谢您提供有用的信息!我现在就试试! 这可能不允许您表达所有可用的 Unicode 代码点,例如所有表情符号。【参考方案2】:

您应该使用相应代码点的转义版本。这是一种允许您仅使用 ASCII 字符来表示整个 Unicode 范围的技术。

EG。 Emoji ? 可以在 Java 中表示为 "\uD83D\uDCA9" 或在 Python 中表示为 u"\U0001F4A9"。 http://www.fileformat.info/info/unicode/char/1f4a9/index.htm

注意:某些表情符号由多个代码点组成,例如标志或系列。请在此处找到 Unicode Emojis 的完整列表http://unicode.org/emoji/charts/full-emoji-list.html

【讨论】:

以上是关于输入法输入表情实际输入的编码的主要内容,如果未能解决你的问题,请参考以下文章

如何检查和编码来自 Facebook Messenger 的输入表情符号?

用JS过滤Emoji表情的输入

iOS 输入框如何限制字符长度和emoji

PHP转换emoji表情为HTML字符实体

判断EditText输入的字符串中是否包含有emohi表情

emoji