【MySQL】CHARSET:文字コードの意味・使い分け(utf8, utf8mb4)

データベース

character set(文字コード)は、データベース、テーブル、カラムに設定可能です。
文字コードについて、特にutf8とutf8mb4について紹介します。

utf8の特徴

utf8は本来4bytesの文字コードですが、mySQLでは3bytesになります。
そのため、一部表示できない文字があります。(絵文字など)

utf8mb4の特徴

utf8mb4は4bytesになるので、絵文字も含めて表示できます。

MySQLのこれからのバージョンでは、utf8が4 バイトのutf8になり、
3バイトのutf8を指定するときにutf8mb3とする可能性があります。

データベースへ文字コードを指定する

-- データベースの文字コード指定
create database utf8mb4_db
    character set 'utf8mb4';

データベースの文字コードを指定した場合、テーブルなども同じ文字コードになります。

テーブルへ文字コードを指定する

-- テーブルへの設定
create table tbl_name() character set 'utf8mb4';

-- テストテーブルの作成
use データベース名;
create table テーブル名(
  mb4 varchar(30) character set 'utf8mb4'
);

文字コードを削除する

-- 削除
drop table テーブル名;

incorrect string value

上のエラーが出た場合、文字コードが原因の可能性があるので、確認しましょう。