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

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

Rating based on reviews:
Total stars received: 0
Total reviews: 0
Average rating: 0
Filed under: User Blog

Проблема

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. Тест

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

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

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

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

 

 



Reviews

No reviews yet


Comments (0)

No comments yet
Only registered users can post new comments

Similar pages

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

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-09-01 22:41

About me briefly
Support and development of web projects on the CMF Cotonti: private messengers via the website, open and closed small social networks, trading platforms and marketplaces, freelance and services exchange portal, catalogs of goods from wholesale suppliers, dropshipping platforms, online stores, and much more.
View developments and download
Public portfolio of my works and developments
Telegram for messages
@webitproff
Telegram channel
@s/aBuyFILE
  • Page published: 2025-07-19 14:19
  • Last update: 2025-07-19 14:43