Я работаю над клиентом XMPP и имею проблему с отправкой/получением сообщений Strophe (версия javascript).Проблема кодирования символов Strophe
Проблема - это сообщения, содержащие «специальные» символы. Например, если я пришлю:
Я здесь.
Внешний клиент (т.е. iChat) будет отображать
Я & ampapos; м здесь.
Клиент-строф ничего не отображает.
Если я отправил то же сообщение от iChat клиенту строфы, он отобразится правильно.
Вот самый основной образец кода я мог придумать:
<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>
Заранее спасибо за любую помощь.
Edit:
Outbound, кажется Строфа имеет двойную кодировку. Когда я типа
Я
он посылает
<body>I&apos;m</body>
Inbound, это, кажется, не обработки CDATA правильно. Любые рекомендации или идеи приветствуются.
возможность взглянуть на данные, отправляемые по JS и проверить, является ли это преобразование осуществляется с помощью strophe.js или на стороне сервера Вы? – Cheery
Я сейчас копаюсь в этом ... будет обновлять вопрос – jopke
Одна «идея»: помните, что ''' недействителен, когда сообщение отправляется из XML в HTML - это только допустимый объект в XML (в отличие от него на ''') - что, вероятно, почему некоторые клиенты на основе HTML не будут отображать его вообще. – JimmiTh