mysql - 离线表情符号/表情显示??? MySql中的Offline表

标签 mysql character-encoding xmpp openfire smack

我正在开发一个聊天应用程序,它通过网络发送表情符号并使用 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/

相关文章:

android - 在 Android 上使用 XMPP 实现聊天应用程序的更好方法?

php - 在 MySql 中加入 DELETE?如何?

php - 用户交互式刷新动态菜单

java - JNI 文档中 "Unicode string"是什么意思?

java - 在Windows的tomcat服务器上托管的Java程序中显示Unicode字符

android - XMPP 和安卓

android - 为什么当 XMPP 连接断开时状态类型用户从不可用变为可用

mysql - 字符串未保存在 DB varchar 列中

php - 如何从 php 中检索值?

c - 无效字符测试