我们已经实现了一个使用facebook聊天的iphone应用程序,部分通过xmpp,部分通过facebook图形api。
一切都很好,除非涉及到表情符号。当我们在iPhone上输入表情图标时,我们的显示屏上就会显示正确的表情图标。
但是,当我们通过xmpp发送到facebook时,我们从facebook得到的消息是另一个转义序列。
下面是一个示例:我们通过xmpp发送以下xml:
<message type="chat" to="-someFacebookID@chat.facebook.com"><body></body></message>当我们回想起facebook的这条消息时,我们得到了如下信息:
{
"author_id" = someID;
body = "\Uf637";
"created_time" = 1351607849;
"message_id" = "someID_41";
"thread_id" = someID;
}下面是我们的消息的FQL语句:
@"SELECT message_id, author_id, thread_id, created_time, body FROM message WHERE thread_id = %@"但为什么facebook要转换表情符号,它在网站的facebook-chat中正确显示?对这个问题有什么想法吗?
问候你,大牛
发布于 2012-10-31 04:29:59
返回的文本(如示例中的"\Uf637“)是表情符号的unicode表示形式。Facebook的数据库不存储完整形式的表情符号,它们被转换为unicode,并在Facebook的应用程序上显示时转换回其表情符号形式。在使用Chat API时,您可能必须在自己的应用程序中执行相同的操作(对于找到的所有unicode表情符号字符串,将其转换为实际的表情符号)。以下是unicode代码及其匹配的表情符号的完整列表:http://www.unicode.org/charts/PDF/U1F600.pdf
https://stackoverflow.com/questions/13141417
复制相似问题