Кодировка для отображения emoji

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Alexandr211
Сообщения: 1
Зарегистрирован: 2019.03.13, 08:56

Кодировка для отображения emoji

Сообщение Alexandr211 »

Здравствуйте!
Подскажите, пожалуйста, следующее. Это связано с отображением смайлов в формате Юникод. Есть контроллер и в нем простая логика, а именно: 1. В файл requests.log выводится информация переменной из этого же контроллера $b = "\xF0\x9F\x98\x81". Результат - в лог файле отображается смайл (скан прилагается). Проверка кодировки переменной функцией mbdetectencoding($b) показывает кодировку UTF-8.
2. В тот же файл выводится информация из БД, которая передана туда из textarea формы с фронтенда и содержит в себе идентичное содержание Юникода того же смайла, т.е. "\xF0\x9F\x98\x81". Но! При отображении данной информации в лог файле выводится не смайл, а его Юникод! При этом, проверка кодировки передаваемой через контроллер в БД информации из textarea посредством mbdetectencoding($b) показывает кодировку ASCII.
3. Если с бекенда записывать в БД данный Юникод, то при получении обратно в лог файле отображается корректно, т.е. смайлом. Получается дело не в БД.
4. перекодировка информации с фронтенда из ASCII в UTF-8 функциями iconv('UTF-8', 'ISO-8859-1', $questionr), utf8encode($question_r) не дает результата...

Вопрос - как решить проблему неверной кодировки передаваемых Юникодов в составе текстовых сообщений из фронтенд форм (textarea) на бекенд чтобы такая кодировка корректно распознавалась как соответствующий смайл? И в ней ли дело? В Yii2 установлена кодировка UTF-8mb4 согласно рекомендациям при работе с emoji, CRUD сформирован стандартно с gii..Спасибо!
Ответить