Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


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

10.1.10.7 utf8mb4 文字セット (4 バイトの UTF-8 Unicode エンコーディング)

utf8 という名前の文字セットは、文字あたり最大 3 バイトを使用し、BMP 文字だけを含みます。utf8mb4 文字セットは、文字ごとに最大 4 バイトを使用し、補助文字をサポートします。

  • BMP 文字の場合、utf8utf8mb4 のストレージ特性は同一で、コード値、エンコーディング、長さが同じです。

  • 補助文字については、utf8 はこの文字をまったく格納できませんが、utf8mb4 は文字の格納に 4 バイトを必要とします。utf8 はこの文字をまったく格納しないので、utf8 カラムには補助文字がなく、utf8 データを古いバージョンの MySQL からアップグレードするときに、文字の変換やデータの損失について心配する必要はありません。

utf8mb4utf8 のスーパーセットであるので、次の連結のような演算の場合、その結果には utf8mb4 の文字セットと utf8mb4_col の照合順序が含まれます。

SELECT CONCAT(utf8_col, utf8mb4_col);

同様に、次の WHERE 句内の比較は、utf8mb4_col の照合順序に従って行われます。

SELECT * FROM utf8_tbl, utf8mb4_tbl
WHERE utf8_tbl.utf8_col = utf8mb4_tbl.utf8mb4_col;

ヒント: スペースを UTF-8 で保存する場合は、CHAR ではなく VARCHAR を使用してください。そのようにしないと、MySQL では CHAR CHARACTER SET utf8 (または utf8mb4) カラムに対して 3 (または 4) バイトを確保する必要があります。これは、可能性のある最大長が 3 (または 4) バイトであるためです。たとえば、MySQL は CHAR(10) CHARACTER SET utf8mb4 カラムに対して 40 バイトを確保する必要があります。


User Comments
Sign Up Login You must be logged in to post a comment.