プログラマ38の日記

主にプログラムメモです。

MySQL: 何も考えずにテーブル文字セットをutf8にしてはまった

文字コードはutf8にしておけば問題ないだろうと甘い認識で、MySQLではまりました。

 

create table sample1 ( column1 varchar(100)) default charset=utf8;

 

上記のようにテーブル文字セットをutf8にしていると、文字化けしている文字、外字、4バイト文字がエラーになります。

 

create table sample1 ( column1 varchar(100)) default charset=utf8mb4;

 

指定するなら上記のようにutf8mb4を指定します。

 

データベースの文字セットは正しく理解してからセットするものだと理解していたつもりですが、はまってしまいました。

そもそも、何も指定しなければutf8mb4になる場合が多いのに、あえて指定して間違ってしまい情けなさを感じました。正しく理解する重要性をあらためて認識しました。