10.9.2 Набор символов utf8mb3 (3-байтовое кодирование Юникод UTF-8)
Набор символов utf8mb3 имеет следующие характеристики:
Поддерживает только символы BMP (нет поддержки дополнительных символов)
Требует не более трех байтов на каждый многобайтовый символ.
Приложения, использующие данные UTF-8, но требующие поддержки дополнительных символов, должны использовать utf8mb4 вместо utf8mb3 (см. Раздел 10.9.1, «Набор символов utf8mb4 (4-байтовое кодирование Юникод UTF-8)»).
Точно такой же набор символов доступен в utf8mb3 и ucs2. То есть, у них одинаковый .
utf8 является псевдонимом для utf8mb3; ограничение на символы неявное, а не явное в названии.
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 utf8) COLLATE utf8_czech_ci;
MySQL немедленно преобразует случаи utf8mb3 в запросах в utf8, поэтому в таких запросах, как SHOW
CREATE TABLE или SELECT CHARACTER_SET_NAME
FROM INFORMATION_SCHEMA.COLUMNS или SELECT
COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS, пользователи видят имя utf8 или utf8_. collation_substring
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.