MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  utf8mb3 文字セット (3 バイトの UTF-8 Unicode エンコーディング)

10.9.2 utf8mb3 文字セット (3 バイトの UTF-8 Unicode エンコーディング)

utf8mb3 文字セットには、次の特性があります:

  • BMP 文字のみをサポート (補助文字はサポートされません)

  • マルチバイト文字ごとに最大 3 バイトが必要です。

UTF-8 データを使用するが補助文字のサポートが必要なアプリケーションでは、utf8mb3 ではなく utf8mb4 を使用する必要があります (セクション10.9.1「utf8mb4 文字セット (4 バイトの UTF-8 Unicode エンコーディング)」 を参照)。

utf8mb3 および ucs2 では、まったく同じ文字セットを使用できます。 つまり、これらは同じ repertoire を持ちます。

utf8utf8mb3 のエイリアスです。文字制限は、名前に明示的ではなく暗黙的です。

注記

utf8mb3 文字セットは非推奨であり、将来の MySQL リリースで削除される予定です。 かわりに utf8mb4 を使用してください。 utf8 は現在 utf8mb3 のエイリアスですが、ある時点では utf8utf8mb4 への参照になることが予想されます。 utf8 の意味があいまいにならないように、utf8 ではなく文字セット参照に utf8mb4 を明示的に指定することを検討してください。

utf8mb3CHARACTER SET 句、utf8mb3_collation_substringCOLLATE 句 (collation_substringbin, 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 TABLESELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLUMNSSELECT 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';

マルチバイト文字セットに関連するデータ型の記憶域の詳細は、文字列型の格納要件 を参照してください。


関連キーワード:  文字, セット, 照合, 順序, サポート, utf, バイト, COLLATE, CHARACTER, ステートメント