Испорченные смайлики между сервером и приложением Android

В приложении чата полученные смайлики не отображаются корректно.

Кодируется перед отправкой в ​​Android:

     URLEncoder.encode(message,"UTF-8")

EDIT1 Получение сообщений в PHP:

  $sqlmessage = "SELECT m.id, m.fromuid, m.touid, m.sentdt, m.read, m.readdt, m.messagetext , m.timeSent, u.username from messages m \n". "left join users u on u.Id = m.fromuid WHERE `touid` = ".$userId." AND `read` = 0 LIMIT 0, 30 ";
.
.
.
if ($resultmessage = $db->query($sqlmessage))
{
while ($rowmessage = $db->fetchObject($resultmessage))
{
$out .= "<message  from='".$rowmessage->username."'  sendt='".$rowmessage->sentdt."' text='".$rowmessage->messagetext."' timeSent='".$rowmessage->timeSent."' />";
error_log($rowmessage->messagetext."\r\n", 3, "error.log");
}
}
.
.
.
echo $out;

Здесь смайлики печатаются с php правильно. Пока все хорошо.

Но при попытке отобразить полученные сообщения со смайликами возникают проблемы.
либо они отображаются как текст мусора или странные символы.

Ответ приходит в виде строки из sendHttpRequest, затем строка анализируется .. и т. Д.

EDIT2

распечатать отправленное сообщение в журнале (улыбающееся лицо):

   message is ��

распечатать полученное сообщение в журнале (улыбающееся лицо):

   message value from xml replyߘĀ2015-02-10 00:57:07.389

Я перепробовал все, что знаю, рассмотрел почти все вопросы о смайлах, но безрезультатно. Последнее, что я попробовал это (в XMLHandler):

     URLDecoder.decode(attributes.getValue(MessageInfo.MESSAGETEXT),"UTF-8")

Как я могу восстановить полученное сообщение?

Мне нужно вернуть его так же, как отправили строку сообщения, чтобы EmojiconEditText мог правильно отображать смайлики.

Замечания:

  • это происходит только тогда, когда сообщение имеет смайлик
  • смайлики отправляются и правильно хранятся в базе данных сервера, проблема возникает при попытке отобразить только полученные смайлики
  • EmojiconEditText хорошо рендерит смайлики

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]