我正在开发一个聊天应用程序,它通过网络发送表情符号并使用 openfire 作为 Xmpp 服务器。
当收件人处于离线状态时,我在消息节中发送表情符号时遇到问题。通过将笑脸转换为??????,将消息插入到 ofOffline 表(基于 MySql)中。
这是 ofOffline 日志:
<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
即通过将字符集从utf8更改为outf8mb4。(按照每个步骤但没有成功)
2)根据链接更改了conf/openfire.xml。
Openfire: Offline UTF-8 encoded messages are saved wrong
但是没有成功,有人可以指导我到底问题是什么以及可能的解决方案吗?
最佳答案
问号无法变回表情符号。
表/列必须声明为字符集utf8mb4
。 (然后重新加载角色。)
此外,您的应用程序代码中必须具有 SET NAMES utf8mb4
或 `set_charset('utf8mb4') 或同等内容。
有关波斯语的链接可能不相关,并且未能显示对 utf8mb4 的需求。 (utf8 对于波斯语来说已经足够了。)
关于mysql - 离线表情符号/表情显示??? MySql中的Offline表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197768/