PHPackages                             blueprint3d/module-allow-utf8mb4 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. blueprint3d/module-allow-utf8mb4

ActiveMagento2-module

blueprint3d/module-allow-utf8mb4
================================

Unlocks full UTF8MB4 database support for Magento 2 (Emojis and 4-byte characters)

v1.0.4(3w ago)00↓66.7%proprietaryPHPPHP &gt;=8.1.0 &lt;8.6.0

Since Jul 22Pushed 1w agoCompare

[ Source](https://github.com/BluePrint3D-Dev/module-allow-utf8mb4)[ Packagist](https://packagist.org/packages/blueprint3d/module-allow-utf8mb4)[ RSS](/packages/blueprint3d-module-allow-utf8mb4/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (2)Versions (8)Used By (0)

BluePrint3D - Allow UTF8MB4 (Emoji Support) for Magento 2 🚀
===========================================================

[](#blueprint3d---allow-utf8mb4-emoji-support-for-magento-2-)

 [![Magento Version](https://camo.githubusercontent.com/360e2de1fd9c704bed173bb02c7cd39ec1713f893d985460f9493be3e29b4e0f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e782d6f72616e67652e737667)](#) [![PHP Version](https://camo.githubusercontent.com/8c00b402202c16d4eeeb48ffb3e4d80a4cf8bf01a9ac63b4e94b027dc76d5013/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532307c253230382e322532307c253230382e332d626c75652e737667)](#) [![MySQL Version](https://camo.githubusercontent.com/a65622632fd587d1aad0d6d7da24383acbd1f9e5352333c06a283c62fab499d8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d7953514c2d382e342532422532302537432532304d6172696144422d6f72616e67652e737667)](#) [![License](https://camo.githubusercontent.com/963cd0662ddc5de09cccec7a2d9b0cf282ff11526f66bb3b97711ac61552cc76/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d50726f70726965746172792d6c69676874677265792e737667)](#)

⚠️ **Requires MySQL 8.4+** (or an equivalent modern MariaDB). Below MySQL 8.0.29, Magento's own declarative schema has no way to keep these columns on `utf8mb4` across repeated `setup:upgrade` runs, and this module's one-shot patch alone isn't enough to guarantee it stays fixed — see [the fine print](#-the-fine-print) below before installing on an older database.

A lightweight, bulletproof Magento 2 module that permanently enables `utf8mb4` encoding across your database. Finally, you can use emojis, extended multilingual characters, and complex Unicode symbols anywhere in your store without Magento destroying them.

---

🛑 The Problem
-------------

[](#-the-problem)

By default, older versions of Magento 2 configure MySQL tables to use the legacy 3-byte `utf8` (or `utf8mb3`) character set. If a content manager or customer attempts to save a 4-byte character—like an emoji (🔥) or a rare Unicode symbol—Magento and MySQL will silently crash the string, chopping off the text and replacing your carefully crafted content with `???`.

🛠️ The Solution
---------------

[](#️-the-solution)

This module injects a targeted Data Patch into Magento's deployment cycle. It automatically converts crucial tables (like Products, CMS Pages, CMS Blocks, and Customer Data) to `utf8mb4` and adjusts the active collation to `utf8mb4_unicode_ci`.

**The result:** Crisp, clean emojis and full 4-byte Unicode support across your entire frontend and backend.

✨ Features
----------

[](#-features)

- **Emoji Compatibility:** Add emojis to product descriptions, category titles, and CMS blocks.
- **Zero Core Overrides:** Built using native Magento 2 Data Patches and architecture.
- **Future-Proof Deployments:** Automatically applies the correct database collations on deployment (`setup:upgrade`).
- **Data Safe:** Alters collation and character sets without destroying or truncating existing store data.

---

📦 Installation
--------------

[](#-installation)

**1. Install via Composer**

```
composer require blueprint3d/module-allow-utf8mb4
```

**2. Enable the module**

```
php bin/magento module:enable BluePrint3D_AllowUtf8mb4
```

**3. Run the database upgrade (This applies the UTF8MB4 Data Patch)**

```
php bin/magento setup:upgrade
```

**4. Compile and flush cache**

```
php bin/magento setup:di:compile
php bin/magento cache:flush
```

---

👨‍💻 Usage
---------

[](#‍-usage)

There is no Admin UI required. Once installed and upgraded, the module works silently in the background. Simply go to **Content &gt; Blocks** or **Catalog &gt; Products** and start pasting emojis! 🚀🍕🛒

---

🔍 The Fine Print
----------------

[](#-the-fine-print)

Magento's declarative schema has no column-level `charset`/`collation` attribute (only table-level), so on MySQL below 8.0.29, every `setup:upgrade` silently regenerates these columns using Magento's own legacy default charset — undoing the conversion, regardless of what this module declares. This isn't fixable purely from `db_schema.xml`.

On MySQL 8.4+ (or a modern MariaDB), Magento's own framework defaults these columns to `utf8mb4` natively on every `setup:upgrade`, so this module's one-shot patch is all you need — it stays fixed with no further action. If you're still on an older MySQL version, upgrade the database first; don't rely on this module alone to keep emoji support working across future deploys.

---

📜 License
---------

[](#-license)

**Copyright © 2026 BluePrint3D Ltd. All rights reserved.**

This software is provided free of charge for personal or commercial use. However, the resale, redistribution, or sublicensing of this source code, modified or unmodified, for direct financial gain is strictly prohibited.

Please see the `LICENSE.txt` file for full terms and conditions.

 **Owned by:** BluePrint3D Ltd (Company Registration Number: 13473806)
 **Email:**

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance97

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

7

Last Release

21d ago

PHP version history (3 changes)1.0.0PHP ^8.2 || ^8.3

v1.0.0PHP ^8.1 || ^8.2 || ^8.3

v1.0.1PHP &gt;=8.1.0 &lt;8.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/f2274c6709b456f938e47fb40f3c9be3c443c0532e7e4b794e67d5864309e6c4?d=identicon)[stu583](/maintainers/stu583)

### Embed Badge

![Health badge](/badges/blueprint3d-module-allow-utf8mb4/health.svg)

```
[![Health](https://phpackages.com/badges/blueprint3d-module-allow-utf8mb4/health.svg)](https://phpackages.com/packages/blueprint3d-module-allow-utf8mb4)
```

###  Alternatives

[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.5M2](/packages/fastly-magento2)[mollie/magento2

Mollie Payment Module for Magento 2

1162.0M19](/packages/mollie-magento2)[adyen/module-payment

Official Magento2 Plugin to connect to Payment Service Provider Adyen.

1673.2M11](/packages/adyen-module-payment)[algolia/algoliasearch-magento-2

Algolia Search &amp; Discovery extension for Magento 2

1912.0M23](/packages/algolia-algoliasearch-magento-2)[nosto/module-nostotagging

Increase your conversion rate and average order value by delivering your customers personalized product recommendations throughout their shopping journey.

28726.5k7](/packages/nosto-module-nostotagging)[myparcelnl/magento

A Magento 2 module that creates MyParcel labels

1862.4k](/packages/myparcelnl-magento)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
