LoginSignup
34
21

More than 5 years have passed since last update.

エラー 1366 Incorrect string value: '\xF0\x9F\x92\xA2" ...' for column

Last updated at Posted at 2015-06-18

今日はこの絵文字「💢」のおかげで面白いものを知ってしまいました。それはutf8mb4です。

utf8のMySQLデータベースに上記の絵文字を保存しようとしたら、次のエラーが発生しました。

スクリーンショット 2015-06-18 午後5.02.06.png

調べたら理由はMySQLのutf8は3バイトまでしか対応していません。しかし、上記の絵文字は4バイトもあります。3バイトまでしか対応していないデータベースに4バイトの絵文字を保存しようとしていたので、エラーが発生しました。

スクリーンショット 2015-06-18 午後5.20.06.png

ネットで調べたらMySQL5.5以上からutf8mb4という4バイトのutf8に対応する文字コードがありまして、さっそくshow character setで確認したら

スクリーンショット 2015-06-18 午後6.03.38.png

本当に4バイトまで対応しているutf8mb4がありました!!

データベース、テーブルとconnection driverが全部utf8からutf8mb4に切り替えたら上記のエラーが解消しました。

34
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
21