В приложении чата полученные смайлики не отображаются корректно.
Кодируется перед отправкой в 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 мог правильно отображать смайлики.
Замечания:
Задача ещё не решена.
Других решений пока нет …