2012-02-05 16 views
7

XMPPクライアントで作業中で、メッセージの送受信にStrophe(javascriptバージョン)で問題が発生しました。ストローク文字エンコードの問題

問題は「特殊」文字を含むメッセージです。たとえば、私が送る場合:

私はここにいます。

外部クライアント(すなわち、iChatは)

I&ampaposが表示され、ここでM。

ストローククライアントには何も表示されません。

iChatからStropheクライアントに同じメッセージを送信すると、正しく表示されます。任意の助けを事前に

<html> 
<head> 
    <script type='text/javascript' src='strophe.min.js'></script> 
    <script type='text/javascript'> 
    function onConnect(status) { 
     if (status == Strophe.Status.CONNECTED) { 
      var message = $msg({to: CONTACT_JID, from: JID, type: 'chat'}).c('body').t("I'm here."); ; 
      connection.send(message.tree()); 
     } 
    } 
    var connection = new Strophe.Connection('http://bosh.metajack.im:5280/xmpp-httpbind'); 
    connection.connect(JID, PASS, onConnect); 
    </script> 
</head> 
<body></body> 
</html> 

ありがとう:ここ

は、私が思い付くことができる最も基本的なサンプルコードです。

編集:

アウトバウンド、詩句がダブルエンコーディングであるようです。私はそれが

<body>I&amp;apos;m</body> 

インバウンドを送信している

を入力すると、それが適切にCDATAを扱うことがないように見えます。任意の指導やアイデアが評価されます。

+0

あなたはJSによって送信されたデータを見て、この変換はstrophe.jsによって、またはサーバー側で行われているかどうかを確認することができますか?私は今その権利を掘り下げるよ – Cheery

+0

... は質問を更新します – jopke

+0

一つの「アイデア」:メッセージがHTMLにXMLから行くとき' 'が有効でない'ことを覚えておいてください - とは対照的に、それは、(XMLでのみ有効なエンティティです'''に) - これはおそらく、HTMLベースのクライアントの中には表示されないものがあります。 – JimmiTh

答えて

関連する問題