我正在使用XMPP框架与OpenFire服务器开发聊天应用程序。 一切正常我只面临一个问题:
当用户A在用户B离线时向用户B发送'表情符号'时,用户B将通过PHP服务器获得推送通知。
当用户上线时,我收到了
中的所有消息 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
方法。 它看起来不错,但是当用户B收到表情符号时,它会转换为“?????” 就像我收到这个消息内容:
<message xmlns="jabber:client" type="chat" to=“receiver” from=“sender”><body>????</body><delay xmlns="urn:xmpp:delay" from="52.208.58.179" stamp="2016-08-15T12:16:59.039Z"></delay></message>
同样的事情在普通短信中运作良好,不知道为什么我会得到“????”在离线模式下。在线模式下工作的代码。
答案 0 :(得分:0)
您需要确保正确配置数据库以处理4字节的unicode字符。例如,MySQL需要使用utf8mb4编码,而不仅仅是utf8。这是最常见的错误案例。