Spec-Zone .ru
спецификации, руководства, описания, API
|
Набор символов называют utf8
использует максимум трех байтов за символ и содержит
только символы BMP. utf8mb4
использование набора символов максимум четырех байтов
за символ поддерживает дополнительные символы:
Для символа BMP, utf8
и utf8mb4
имейте идентичные характеристики хранения: те же самые кодовые
обозначения, то же самое кодирование, та же самая длина.
Для дополнительного символа, utf8
не может сохранить
символ вообще, в то время как utf8mb4
требует, чтобы четыре байта сохранили
это. С тех пор utf8
не может сохранить символ вообще, у Вас нет никаких
дополнительных символов в utf8
столбцы и Вы не должны волноваться о
преобразовании символов или потере данных, обновляя utf8
данные от более
старых версий MySQL.
utf8mb4
надмножество utf8
, так для работы, такой как
следующая связь, у результата есть набор символов utf8mb4
и сопоставление utf8mb4_col
:
SELECT CONCAT(utf8_col, utf8mb4_col);
Точно так же следующее сравнение в WHERE
пункт работает согласно сопоставлению
utf8mb_col
:
SELECT * FROM utf8_tbl, utf8mb4_tblWHERE utf8_tbl.utf8_col = utf8mb4_tbl.utf8mb4_col;
Чтобы оставить свободное место с UTF-8, использовать VARCHAR
вместо CHAR
. Иначе, MySQL должен зарезервировать три (или четыре) байты для каждого
символа в a CHAR CHARACTER SET utf8
(или utf8mb4
)
столбец, потому что это - максимальная возможная длина. Например, MySQL должен зарезервировать 40 байтов для
a CHAR(10) CHARACTER SET utf8mb4
столбец.