离线表情符号/表情符号显示????在MySql ofOffline表中

时间:2015-10-18 12:09:57

标签: mysql character-encoding xmpp openfire smack

我正在开发一个聊天应用程序,它通过网络发送表情符号并将openfire用作Xmpp服务器。

当收件人处于脱机状态时,我在Message Stanza中发送表情符号时遇到问题。通过将笑脸转换为??????,将消息插入到ofOffline Table(基于MySql)中。

这是ofOffline log:

<message to="1896127963944789@xxx" id="lQ7TP-99" type="chat" from="803084821356919@xxx/Smack"><body>{"message":"????????????","timestamp":1451299511711,"senderName":"john"}</body><thread>e5835bf7-e505-43e5-81cf-0e32e636afa8</thread></message>

我尝试了以下解决方案:

1)https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4

by changing the Charset from utf8 toutf8mb4.(Followed each step but no success)

2)根据链接更改了conf / openfire.xml。

Openfire: Offline UTF-8 encoded messages are saved wrong

但没有成功,有人可以指导我究竟是什么问题以及可能的解决方案。

1 个答案:

答案 0 :(得分:0)

问号不能转回表情符号。

必须将表/列声明为CHARACTER SET utf8mb4。 (然后重新加载角色。)

此外,您的应用程序代码中必须包含SET NAMES utf8mb4或`set_charset('utf8mb4')或等效文件。

关于波斯语的链接可能没有关系,并且确实没有表明需要utf8mb4。 (utf8适合波斯语。)