Страница 1 из 1

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

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

Добавлено: 24.10.2019, 18:50
zyxer
Какая версия? Какая кодировка базы и соединения?

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

Добавлено: 25.10.2019, 11:48
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> на имя вашей базы).

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

Добавлено: 27.10.2019, 08:23
Julius123
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> на имя вашей базы).

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

Добавлено: 27.10.2019, 08:38
zyxer
Кодировку соединения в config/config.php сменили?

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