我正在开发一个聊天应用程序,它通过网络发送表情符号并将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
但没有成功,有人可以指导我究竟是什么问题以及可能的解决方案。
答案 0 :(得分:0)
问号不能转回表情符号。
必须将表/列声明为CHARACTER SET utf8mb4
。 (然后重新加载角色。)
此外,您的应用程序代码中必须包含SET NAMES utf8mb4
或`set_charset('utf8mb4')或等效文件。
关于波斯语的链接可能没有关系,并且确实没有表明需要utf8mb4。 (utf8适合波斯语。)