SQL-UTF8MB4-001

DEFAULT CHARSET=utf8

utf8 (3-byte) instead of utf8mb4

Joomla 4+ and MySQL 8 expect utf8mb4. Plain utf8 cannot store emoji and some names.

DEFAULT CHARSET=utf8DEFAULT CHARSET=utf8mb4

Dies at Joomla 3 → 4J3: Works nativelyJ4: Changed behaviourJ6: Changed behaviourBC plugin: not applicableMechanical renameSQL / schema

What you will see

  • Incorrect string value

Symptoms people search

emoji becomes ??? · utf8 charset

Replace this code

Swap DEFAULT CHARSET=utf8 for DEFAULT CHARSET=utf8mb4.

Joomla 3

Remove or stop calling this

CREATE TABLE `#__lms` (...) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Joomla 4 / 6

Use this instead

CREATE TABLE `#__lms` (...) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

How to fix it

  1. 1Use utf8mb4 in CREATE TABLE.
  2. 2Convert existing tables with a planned ALTER (backup first).

Also known as

utf8mb4 · CHARSET=utf8

Related issues

Get in touch

Have a project in mind? Let's talk about it.

Tell us what you're building. Whether it's a new site, an online store, a mobile app, or something that needs AI under the hood, we'll get back to you within a business day.

Free consultation
No commitment, no pressure
Reply within 24 hours
Usually much faster

Prefer a direct conversation?

Request a project quote

Tell us about your project

Fill out the quick form and we'll reach out.