为什么不支持来自其他设备的表情符号?

Why are emoticons from other device not supported?

我正在 Android 上开发一个聊天应用程序,使用的表情符号库来自:https://github.com/ankushsachdeva/emojicon

这是我使用的第二个库,问题几乎相同,我尽我所能,搜索但问题仍然存在。

EmoticonEditText 正确呈现已发送的表情符号,但无法正确呈现接收到的消息。

像这样:

即时通讯是这样的:

设备A:

设备 B:

注释

1- 每个设备都可以正确呈现自己发送的表情消息,但不能正确呈现来自其他设备的表情消息。

2-我在数据库中的消息 table 具有 UTF-8_general_ci 排序规则,但消息显示为 ğğğğğ¤ğ

3- 这是http请求发送消息的参数:

    String params = "username="+ URLEncoder.encode(this.username,"UTF-8") + 
            "&password="+ URLEncoder.encode(this.password,"UTF-8") + 
            "&to=" + URLEncoder.encode(tousername,"UTF-8") +
            "&message="+ URLEncoder.encode(message,"UTF-8") +
            "&action="  + URLEncoder.encode("sendMessage","UTF-8")+
            "&";    

4- 表情是这样命名的emoji_00a9.png

导致问题的原因是什么?

如何解决(步骤简单明了)?

确保 field/table 使用 utf8mb4 字符集。这将允许它正确地存储 BMP 之外的字符。