utf8mb3
字元集具有以下特性:
僅支援 BMP 字元 (不支援補充字元)
每個多位元組字元最多需要三個位元組。
使用 UTF-8 資料但需要補充字元支援的應用程式應使用 utf8mb4
,而不是 utf8mb3
(請參閱 章節 12.9.1,「utf8mb4 字元集 (4 位元組 UTF-8 Unicode 編碼)」)。
utf8mb3
和 ucs2
中提供的字元集完全相同。也就是說,它們具有相同的庫。
MySQL 的建議字元集為 utf8mb4
。所有新的應用程式都應使用 utf8mb4
。
utf8mb3
字元集已棄用。utf8mb3
在 MySQL 8.0.x 和 MySQL 8.4.x LTS 發行系列的生命週期內仍會受到支援。
預期 utf8mb3
將在未來的主要 MySQL 版本中移除。
由於變更字元集可能是一項複雜且耗時的任務,您應立即開始準備此變更,以便為新應用程式使用 utf8mb4
。如需轉換使用 utfmb3 的現有應用程式的指南,請參閱章節 12.9.8,「在 3 位元組和 4 位元組 Unicode 字元集之間轉換」。
utf8mb3
可用於 CHARACTER SET
子句中,而 utf8mb3_
可用於 collation_substring
COLLATE
子句中,其中 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';
如需有關與多位元組字元集相關的資料類型儲存的資訊,請參閱字串類型儲存需求。