12.9.2 Набор символов utf8mb3 (3-байтовое кодирование Unicode UTF-8)
Набор символов utf8mb3 имеет следующие характеристики:
Поддерживает только символы BMP (без поддержки дополнительных символов)
Требует не более трех байтов на каждый многобайтовый символ.
Приложения, использующие данные UTF-8, но требующие поддержки дополнительных символов, должны использовать utf8mb4, а не utf8mb3 (см. Раздел 12.9.1, «Набор символов utf8mb4 (4-байтовое кодирование Unicode UTF-8)»).
Точно тот же набор символов доступен в utf8mb3 и ucs2. То есть они имеют одинаковые ...
Рекомендуемым набором символов для MySQL является utf8mb4. Все новые приложения должны использовать utf8mb4.
Набор символов utf8mb3 устарел. utf8mb3 по-прежнему поддерживается на протяжении всего срока действия серии релизов MySQL 8.0.x и MySQL 8.4.x LTS.
Ожидается, что utf8mb3 будет удалено в будущей основной версии MySQL.
Поскольку изменение наборов символов может быть сложной и трудоёмкой задачей, вы должны начать подготовку к этому изменению сейчас, используя utf8mb4 для новых приложений. Для руководства по преобразованию существующих приложений, использующих utfmb3, см. Раздел 12.9.8, «Преобразование между наборами символов Unicode с 3-байтовым и 4-байтовым кодированием».
utf8mb3 может использоваться в CHARACTER
SET-клаузах, а utf8mb3_ — в collation_substringCOLLATE-клаузах, где collation_substring является bin, czech_ci, danish_ci, esperanto_ci, estonian_ci и так далее. Например:
CREATE TABLE t (s1 CHAR(1)) CHARACTER SET utf8mb3;
SELECT * FROM t WHERE s1 COLLATE utf8mb3_general_ci = 'x';
DECLARE x VARCHAR(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_danish_ci;
SELECT CAST('a' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_czech_ci;
В таких операциях, как SHOW CREATE TABLE или SELECT CHARACTER_SET_NAME FROM
INFORMATION_SCHEMA.COLUMNS или SELECT
COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS, имена наборов символов или кодировок, предваряемые utf8 или utf8_, отображаются с использованием utf8mb3 или utf8mb3_ соответственно.
utf8mb3 также допустим (но устарел) в контекстах, отличных от CHARACTER SET-клауз. Например:
mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';
Сведения о хранении данных типов данных в отношении многобайтовых наборов символов см. в Требования к хранению данных типов строк.
© 2025 Oracle
Licensed under the GPLv2 License.