🤦‍♂️ Emoji в title

Добрый день.
Возникла необходимость вписывать эти ужасные смайлики в title, description сайта.
О том, что хранение emoji возможно только при кодировке таблицы ut8mb4 знал, заменил кодировку таблицы site_content

Попытка вставлять смайл через админ панель приводит к тому, что в базе сохраняется вместо смайла 4 знака вопроса ????
Попытка вставить смайл напрямую в базу, минуя modx приводит к sql ошибке


не подскажите, что делаю не так?
Александр Мельник
07 сентября 2022, 13:32
modx.pro
96
0

Комментарии: 7

Андрей Шевяков
07 сентября 2022, 14:35
0
Проверьте в структуре таблицы для этих полей тоже указана кодировка ut8mb4?
На фото у меня по умолчанию таблица.
    Александр Мельник
    07 сентября 2022, 14:53
    0
    вы правы Андрей, спасибо.
    Это немного ставит меня в ступор. Что тогда происходит при изменении кодировки всей таблицы, если при этом кодировка всех столбцов осталась неизменной.
      Александр Мельник
      07 сентября 2022, 15:17
      0
      Изменил кодировку полей pagetitle longtitle
      Прямой запрос к базе теперь не вызывает ошибок и позволяет сохранить смайлик в поле.
      Но при этой на сайте все равно выводится знак вопроса, как в админке так и на самой странице.
      Так если вставлять смайл через админку в поле pagetitle то он сразу же после сохранение превращаяется в знак?
        Андрей Шевяков
        07 сентября 2022, 16:14
        0
        Я на каком то сайте, не помню уже смайлики копировал вот с этого сайта emojilo.com/ru/ проблем не было.
          Александр Мельник
          07 сентября 2022, 16:21
          0
          к сожалению нет.
          Скопировал смайл с этого сайта.
          Вставил в поле longtitle выглядит вот так

          Нажал сохранить, выглядит вот так.


          в основном файле конфигурации мы указываем кодировку подключения к базе данных. Там указан utf8, интересно, при использовании utf8mb4 не нужно ли изменять эту настройку. Нужно будет попробовать.
            Андрей Шевяков
            07 сентября 2022, 16:27
            +1
            Да кстати, там тоже надо поменять. Посмотрел на одном сайте, на нем для отзывов правил использование смайликов.
            Александр Мельник
            07 сентября 2022, 16:28
            1
            +2
            в core/config
            заменил $database_connection_charset = 'utf8mb4';
            и
            $database_dsn = 'mysql:host=localhost;dbname=mydb;charset=utf8mb4';

            и заработало.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7