メニュー

2013年12月24日

MySQLでUnicode絵文字を使う

文章中に一部の絵文字があると、エラーになる問題に遭遇。

Unicode絵文字は4バイトなので、MySQLで使う場合は utf8mb4 という文字コードを使う必要があります。

というわけで、カラムの文字コードは utf8mb4 でテーブルの照合順序も utf8mb4_general_ci にしていたのですが……これだけではだめでした。

以下の項目を utf8mb4 に設定して通るようになりました。

  • character_set_client
  • character_set_connection
  • character_set_database
  • character_set_results
  • character_set_server

クライアントとサーバの通信部分でも utf8mb4 になるように、しておく必要があるわけですね。

さて、環境がRDSだったので新規パラメーターグループを作成して上記を設定し、RDSのパラメーターグループを変更して再起動して完了。