4

一部は xmpp で、一部は Facebook グラフ API で、Facebook チャットを使用する iPhone アプリを実装しました。

顔文字になるまでは、すべて問題ありません。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 チャットに正しく表示されるのでしょうか? この問題に関するアイデアはありますか?

よろしく、ダニエル

4

1 に答える 1

3

返されるテキスト (サンプルの "\Uf637" など) は、絵文字の Unicode 表現です。Facebook のデータベースは顔文字を完全な形式で保存するのではなく、Unicode に変換され、Facebook のアプリに表示されるときに元の顔文字形式に変換されます。Chat API を使用する場合は、おそらく自分のアプリで同じことを行う必要があります (Unicode の絵文字のような文字列が見つかった場合は、それを実際の絵文字に変換します)。以下は、一致する絵文字記号を含む Unicode コードの完全なリストです: http://www.unicode.org/charts/PDF/U1F600.pdf

于 2012-10-30T20:29:58.620 に答える