今日はこの絵文字「💢」のおかげで面白いものを知ってしまいました。それはutf8mb4
です。
utf8のMySQLデータベースに上記の絵文字を保存しようとしたら、次のエラーが発生しました。
調べたら理由はMySQLのutf8は3バイトまでしか対応していません。しかし、上記の絵文字は4バイトもあります。3バイトまでしか対応していないデータベースに4バイトの絵文字を保存しようとしていたので、エラーが発生しました。
ネットで調べたらMySQL5.5以上からutf8mb4
という4バイトのutf8に対応する文字コードがありまして、さっそくshow character set
で確認したら
本当に4バイトまで対応しているutf8mb4
がありました!!
データベース、テーブルとconnection driverが全部utf8からutf8mb4に切り替えたら上記のエラーが解消しました。