Удалить из строки все 4-х байтовые символы (конвертирование utf8mb4 в utf8)

28 февраля 2022
Код уберёт из строки $str_utf8mb4 всех четырёхбайтовые символы и запишет результат в переменную $str_utf8
$str_utf8 = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $str_utf8mb4);

Обычно, такая обработка требуется для исправления в MySQL ошибки вида Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=', когда нет возможности перевести кодировку таблицы в utf8mb4.