どうもmizukiです。Twitterのツイートを取得してデータベースに入れる機能を作っていて20日ぶりに動かしたら[1366 Incorrect string value]エラーを吐いていました。原因は取得したツイートに入っている絵文字🦐がutf8だと扱えない事でした。テストの時には偶然絵文字無しのツイートを拾っていたのでエラーがスルーされていました。
対処方法
照合順序(Collation)を絵文字🦐を使える『utf8mb4』を指定すれば直ります。
テーブルやカラムによってバラバラだと、WHEREなどの結果に変わってくるのでなるべく統一した方が良いです。
私は『utf8mb4_general_ci』を指定しました。
まとめ
絵文字がかなり使われているのでデフォルトで「utf8mb4」を扱っても良さそうです。会社でも照合順序を2バイト文字が打てない物が設定されていて微妙にハマったので、設計の時点で固めておくと時間短縮になると思いました。
会社の基幹システムで絵文字使ってエラーが出るかテストしてみよう(ゲス顔)
参考
▼絵文字のエラーについて解説
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgyJUE4JUUzJTgzJUE5JUUzJTgzJUJDJTIwMTM2NiUyMEluY29ycmVjdCUyMHN0cmluZyUyMHZhbHVlJTNBJTIwJTI3JTVDeEYwJTVDeDlGJTVDeDkyJTVDeEEyJTIyJTIwLi4uJTI3JTIwZm9yJTIwY29sdW1uJTIwJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz0zYWZkMDBkNDBkMzcxNWUxZGNmZmU0MTA2ODU0ODk2YQ&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBlZGlzb250aGsmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTUxNjQzMjRlZTRjYzk0N2YyNGM5ODQxMDk0MjI1OTUw&blend-x=142&blend-y=486&blend-mode=normal&s=afd61a21a1055c54d189add8c0deece6)
エラー 1366 Incorrect string value: '\xF0\x9F\x92\xA2" ...' for column - Qiita
今日はこの絵文字「💢」のおかげで面白いものを知ってしまいました。それはutf8mb4です。utf8のMySQLデータベースに上記の絵文字を保存しようとしたら、次のエラーが発生しました。調べたら理…
▼utf8mb4のCollationについて解説、設計する人は把握しておいた方が良さそうです。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TXlTUUwlRTMlODElQUUlRTYlOTYlODclRTUlQUQlOTclRTMlODIlQjMlRTMlODMlQkMlRTMlODMlODklRTMlODElQThDb2xsYXRpb24mdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWMwMGI4NGQ4OGExYTc0MzI2Y2RiMzA5YWY4MzM4Nzlh&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0ZnVuYXRvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hZWJiNDY1ZDYzYTVlYmY1ZDRjYTU3MTFkMzA2Nzk0OQ&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g5qCq5byP5Lya56S-44KG44KB44G_&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=adf3e3cb9d1706fbf7ae0ff906ee3b09)
MySQLの文字コードとCollation - Qiita
散々、書かれていることで、何度もでてくる話なので、自分用にまとめ。文字コードまずMySQLの文字コードですが絵文字のみでなく、JIS X 0213の第3・4水準漢字の一部にUTF8 4バイト文…
コメント