Обрезается текст на Unicode-символах в TinyMCE

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

dabustard
dabustard
Репутация: 4
Сообщения: 29
Зарегистрирован: 26.01.2018
С нами: 1 год 9 месяцев

Сообщение #1 dabustard » 24.10.2019, 14:48

При попытке сохранения текста в редакторе TinyMCE, в котором присутствуют некоторые символы Unicode (в частности цветные смайлы), происходит обрезка всей его части после первого встретившегося символа.

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #2 zyxer » 24.10.2019, 18:50

Какая версия? Какая кодировка базы и соединения?

Julius123 M
Julius123 M
Репутация: 19
Сообщения: 204
Зарегистрирован: 05.02.2017
С нами: 2 года 9 месяцев

Сообщение #3 Julius123 » 25.10.2019, 07:40

Тоже самое происходит и при заполнении Title, Description у товаров и категорий, что очень огорчается, для SEO такие символы нужны в метаданных. Версия 2.3.4, кодировка БД utf8, https://prnt.sc/pnwfbo

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #4 zyxer » 25.10.2019, 11:48

поддержка смайлов не может быть на кодировке utf8.
Поддержка смайлов добавлена в OkayCMS 3. Но можете на свой страх и риск попробовать изменить кодировку базы и всех таблицы на utf8mb4_unicode_ci и установить кодировку соединения utf8mb4

Для этого выполните sql запрос

Код: Выделить всё

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') as sqlcode
  FROM `information_schema`.`TABLES` t
WHERE t.`TABLE_SCHEMA` = '<DB NAME>'
ORDER BY 1

Он сгенерирует другой sql запрос, затем нужно будет выполнить те запросы, что будут (нужно заменить <DB NAME> на имя вашей базы).

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

Julius123 M
Julius123 M
Репутация: 19
Сообщения: 204
Зарегистрирован: 05.02.2017
С нами: 2 года 9 месяцев

Сообщение #5 Julius123 » 27.10.2019, 08:23

zyxer писал(а):поддержка смайлов не может быть на кодировке utf8.
Поддержка смайлов добавлена в OkayCMS 3. Но можете на свой страх и риск попробовать изменить кодировку базы и всех таблицы на utf8mb4_unicode_ci и установить кодировку соединения utf8mb4

Для этого выполните sql запрос

Код: Выделить всё

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') as sqlcode
  FROM `information_schema`.`TABLES` t
WHERE t.`TABLE_SCHEMA` = '<DB NAME>'
ORDER BY 1

Он сгенерирует другой sql запрос, затем нужно будет выполнить те запросы, что будут (нужно заменить <DB NAME> на имя вашей базы).

Повторюсь, выполнять на свой страх и риск. В теории ничего не должно сломаться, на практике нужно проверять. Перед выполнением обязательно сделайте полный дамп базы (со структурой).
Теперь вместо смайлов после сохранения выводится "????"

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #6 zyxer » 27.10.2019, 08:38

Кодировку соединения в config/config.php сменили?

Julius123 M
Julius123 M
Репутация: 19
Сообщения: 204
Зарегистрирован: 05.02.2017
С нами: 2 года 9 месяцев

Сообщение #7 Julius123 » 27.10.2019, 08:44

zyxer писал(а):Кодировку соединения в config/config.php сменили?
Забыл, теперь все работает. Спасибо!


Название раздела: Баг-репорт OkayCMS (Сообщения об ошибках)
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Баг-репорт OkayCMS (Сообщения об ошибках)»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость