Получать?когда смайлик (\ ue415) размещен на сервере - PullRequest
1 голос
/ 27 февраля 2012

Я пытаюсь отправить смайлик на сервер.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:tem="http://tempuri.org/"> 
<soapenv:Header/>
<soapenv:Body>
<tem:PostMessage>
<tem:UserID>1</tem:UserID>
<tem:FriendID>3</tem:FriendID>
<tem:Message>\ue415</tem:Message>
</tem:PostMessage>
</soapenv:Body>
</soapenv:Envelope> 

Это то, что я отправляю на сервер. Но сервер получает сообщение как ? . Таким образом, другой пользователь также получает сообщение как ? , а не \ ue415, который является смайликом (: D).

1 Ответ

1 голос
/ 01 марта 2012

\ ue415 - это 16-битный код символа, но в вашем файле указана кодировка UTF-8, поэтому вам необходимо преобразовать этот символ в правильную последовательность UTF-8. Согласно http://www.utf8 -chartable.de / unicode-utf8-table.pl? Start = 58368 это

ee 90 95

Таким образом, замена \ ue415 на \ xee \ x90 \ x95 будет работать, если это правильный формат на стороне клиента. Если он ожидает объекты HTML, это будет & # xee; & # x90; & # x95; (или что-то в этом роде).


Еще одна вещь: мне только что пришло в голову, что смайлики, которые я видел, все принимают два символа в UTF-16. Оказывается, 0xE415 - кодировка смайликов старого стиля ( вот ТАК об этом). Код для этого смайлика в новом стандарте Unicode - 0x1f604 или в UTF-8:

F0 9F 98 84
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...