我们已经实现了一个使用Facebook聊天的iphone应用程序,部分通过xmpp,部分通过facebook图表api。
一切都很好,直到表情符号。当我们在iPhone上输入表情符号时,我们会在显示屏上显示正确的表情符号。
但是我们从facebook获得的消息是我们通过xmpp发送到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中正确显示的表情符号? 关于这个问题的任何想法?
此致 丹尼尔
答案 0 :(得分:3)
返回的文本(例如示例中的“\ Uf637”)是表情符号的unicode表示形式。 Facebook的数据库不会以完整形式存储表情符号,它们会转换为unicode,并在Facebook的应用程序上显示时转换回其表情符号形式。在使用Chat API时,您可能必须在自己的应用程序中执行相同的操作(对于找到的所有类似unicode表情符号的字符串,将其转换为实际的表情符号)。以下是unicode代码的完整列表及其匹配的表情符号:http://www.unicode.org/charts/PDF/U1F600.pdf