Unicode Emojis не отображается в браузере, но хранится в MySQL

Я пытаюсь отобразить Emojis, хранящиеся в моей базе данных mysql в веб-браузере, и у меня возникают проблемы. Изначально эмодзи переводились на

????

так же было проведено некоторое исследование и мы изменили кодировку нужной таблицы на utf8mb4. Теперь я могу хранить Unicodes в базе данных, например.

😴
💛

Однако, когда я получаю строку через php, в которой они хранятся, из базы данных я вижу только текст вокруг кодов и сами коды, а не смайлики.
например

"had a great weekend with the family 💛"

вместо:

«отлично провели выходные с семьей »

какие-либо предложения, что я делаю не так?

РЕДАКТИРОВАТЬ


Решил мою проблему. Я использовал

htmlspecialcahrs()

на входе строк, которые я хочу сохранить. Это было преобразование

&

в

&amp

в результате чего Emoji не должен быть признан

&amp#128564

не является действительным. Я просто должен был удалить

htmlspecialchars

вставьте строки, и это сработало!

Спасибо за поиск

2

Решение

MySQL не касается HTML-объектов, таких как 💛, Что-то еще порождает их.

Если вы используете JSON в PHP, проверьте второй аргумент, чтобы избежать htmlentities.

Если вы застряли с сущностями, вы можете превратить их обратно в персонажей с помощью html_entity_decode(),

Было бы лучше иметь utf8mb4 повсюду; то есть UNHEX('F09F929B') в базе данных, не использовать html*() в PHP и т. д.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector