Ocstore/OpenCart Emoji Fix ПРОБЛЕМА: В ocStore 3.0.3.7 не сохраняются эмодзи в описании товаров

Если вы пробуете вставить эмодзи (🚀🌟🎉) в описание, заголовок, meta-title или другие текстовые поля в ocStore (OpenCart), они или отрезаются, или сохраняются как ???, или вообще не проходит сохранение.

Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
Опубликовано в: Блог пользователей

Проблема

ocStore 3.0.3.7 не сохраняет эмодзи в описаниях товаров и других текстовых полях, потому что по умолчанию база данных и таблицы используют кодировку utf8 (три байта), которая не поддерживает символы с 4 байтами (эмодзи и некоторые редкие символы).

Чтобы эмодзи отображались и сохранялись корректно, нужно перевести базу, таблицы и поля на кодировку utf8mb4 — расширенный вариант utf8, который поддерживает 4-байтные символы.


Как это сделать для всей базы данных — пошагово


Шаг 1. Создайте резервную копию базы данных!

Прежде чем менять кодировку — сделайте полную резервную копию вашей базы. Это важно, чтобы можно было восстановиться в случае ошибки.

В phpMyAdmin:

   Выберите базу данных

   Нажмите "Экспорт"

   Выберите формат SQL и нажмите "ОК" / "Выполнить"

Шаг 2. Проверьте текущую кодировку базы и таблиц

Выполните в SQL-запросах phpMyAdmin:

-- Посмотреть кодировку базы данных
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'ваше_имя_базы';

-- Посмотреть кодировку таблиц
SELECT TABLE_NAME, TABLE_COLLATION
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'ваше_имя_базы';

Если вы видите utf8_general_ci или похожее — это 3-байтовая кодировка.
Шаг 3. Измените кодировку базы данных

Выполните запрос:

ALTER DATABASE `ваше_имя_базы` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

Шаг 4. Измените кодировку всех таблиц и колонок
Вариант 1 — для каждой таблицы и всех текстовых колонок вручную

att_632.png

Для каждой таблицы сделайте:

ALTER TABLE `имя_таблицы` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Это изменит кодировку таблицы и всех её текстовых полей (VARCHAR, TEXT) на utf8mb4.
Вариант 2 — автоматизировать (пример для phpMyAdmin или MySQL консоли)

Выполните такой запрос, который сгенерирует список команд для всех таблиц:

SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS sql_cmd
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'ваше_имя_базы';

 

Скопируйте полученный список команд и выполните их.

att_631.png


Шаг 5. Проверьте и исправьте настройки подключения к базе в ocStore

В файле подключения к базе (обычно config.php и admin/config.php) убедитесь, что используется правильная кодировка:

В вашем PHP-коде после подключения к базе должно быть примерно:

$this->db->query("SET NAMES 'utf8mb4'");
$this->db->query("SET CHARACTER SET utf8mb4");
$this->db->query("SET COLLATION_CONNECTION = 'utf8mb4_unicode_ci'");

 

Или если используете mysqli напрямую:

$this->connection->set_charset("utf8mb4");

Шаг 6. Очистите кеш ocStore и проверьте

   Очистите кеш системы (в админке или вручную удалите папки кеша)

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

Итог

Теперь вся ваша база и все таблицы работают с кодировкой utf8mb4 — значит эмодзи можно спокойно сохранять и отображать!

 

 

Как это сделать для только для таблицы описания товаров базы данных — пошагово

Если вы пробуете вставить эмодзи (🚀🌟🎉) в описание, заголовок, meta-title или другие текстовые поля в ocStore (OpenCart), они или отрезаются, или сохраняются как ???, или вообще не проходит сохранение.

Причина: база или поля в ней используют кодировку utf8, которая не умеет хранить эмодзи. Нужно использовать utf8mb4.

РЕШЕНИЕ: переход на utf8mb4

Всё нижее делается в phpMyAdmin.

ШАГ 1. Проверьте кодировку базы данных

Зайдите в phpMyAdmin.

В левой части выберите свою базу (где ocStore).

Всверху выберите вкладку "Операции".

Проверьте значение кодировки. Если utf8, нажмите "Изменить" и выставьте utf8mb4_unicode_ci.

ШАГ 2. Измените кодировку таблиц

В phpMyAdmin выберите таблицу oc_product_description

Нажмите "SQL" и введите:

ALTER TABLE `oc_product_description` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

Затем прогоните:

ALTER TABLE `oc_product_description`
 MODIFY `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
 MODIFY `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
 MODIFY `tag` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
 MODIFY `meta_title` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
 MODIFY `meta_description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
 MODIFY `meta_keyword` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
 MODIFY `meta_h1` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

ШАГ 3. Обновите PHP-файл подключения к БД

Откройте файл: /system/library/db/mysqli.php

Найдите строку:

$this->connection->set_charset("utf8");

Замените на:

$this->connection->set_charset("utf8mb4");

ШАГ 4. Тест

Зайдите в любой товар

Вставьте в описание текст с эмодзи, например:

Какой-то текст описания товара 🚀🌟

Сохраните и проверьте в просмотре товара.

 

 



Отзывы

Отзывов пока нет


Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Похожие страницы

Open Server 6 + OpenCart и ocStore. Инструкция по установке
1 Правильно прописываем пути и настройки конфигурации в файле config.php при установке или развертыванию резервной копии
Оптимизация изображений для интернет-магазина на OpenCart, ocStore
2 Почему оптимизация изображений обязательна для интернет-магазина с 3 000–10 000 товаров и больше? Современный
Оптимизация изображений для OpenCart и ocStore под заказ
3 Полный гид по сжатию, конвертации и ускорению сайта в 2025 году В эпоху цифровой коммерции, когда конкуренция в
Мультиязычность описания товаров и услуг
4 Как настроить многоязычность для товаров, локализацию контента на разных языках в модулях "Задания",
Онлайн конвертор XML в CSV (XLSX) для товаров
5 Обзор онлайн-конвертеров XML в CSV: Data.page vs ConvertCSV.comXML остается популярным формат hurtful для хранения

Автор контента

webitproff

Оффлайн

Carbonate Sodium

Последняя авторизация: 19.07.2026 22:29

  • Чем могу помочь?

    Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.

  • Разработки на GitHub бесплатно
    • Страница размещена: 19.07.2025 14:19
    • Последнее обновление: 19.07.2025 14:43