データベース

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

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

この記事の目次
  1. utf8の特徴
  2. utf8mb4の特徴
  3. データベースへ文字コードを指定する
  4. テーブルへ文字コードを指定する
  5. 文字コードを削除する
  6. incorrect string value

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

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

スポンサーリンク