BluePrint3D Logo
Free tool

Emoji & 4-Byte Character Checker

Paste a product title or description. See which characters an older Magento database can't store, what it would save instead, and get a version that's safe everywhere.

Everything is worked out in your browser; nothing you paste is sent anywhere.

Why emoji turn into ??? in Magento

Text is stored as UTF-8, where each character takes 1 to 4 bytes. MySQL's older utf8 character set (now called utf8mb3) only stores characters up to 3 bytes. Most emoji, and the "fancy" bold and italic letters that font-changer sites produce, need 4. Older Magento installs created many tables with utf8mb3, so those characters come out as ?, or the text is cut off at the first one, often without any error in the admin.

Not every emoji is a problem. Older symbols such as ❤ ✔ ★ and ☀ are only 3 bytes and store fine; the checker lists any it finds as safe.

Check your own database

Run this in your Magento database (for example in phpMyAdmin or the mysql command line). Any rows it returns are columns that still can't store emoji:

SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
  AND CHARACTER_SET_NAME IN ('utf8', 'utf8mb3')
  AND TABLE_NAME IN ('catalog_product_entity_varchar', 'catalog_product_entity_text',
                     'catalog_category_entity_varchar', 'catalog_category_entity_text',
                     'cms_page', 'cms_block', 'review_detail', 'sales_order_address',
                     'customer_entity', 'customer_address_entity')
ORDER BY TABLE_NAME, COLUMN_NAME;

If you use a table prefix, add it to the table names.

Fixing it for good

The columns need converting to utf8mb4. On MySQL 8.4 or later (or a modern MariaDB), Magento keeps them on utf8mb4 once converted. On older MySQL, every setup:upgrade can quietly convert them back, so upgrade the database first.

Allow UTF8MB4: free Magento extension

Converts Magento's product, category, CMS and customer tables to utf8mb4 with a standard Composer install and setup:upgrade, no hand-written SQL. Requires MySQL 8.4+ or a modern MariaDB.