Help us understand the problem. What is going on with this article?

MySQLでの絵文字(4byte文字)対応(utf8)めもめも

More than 5 years have passed since last update.

問題点

MySQL5.5以前では4byteのutf8文字列を入れることができない
⇒日本での絵文字などはこれにあたる。
⇒他の国の言語も一部ここにあたる

現象

実際に入れてみると、4byte文字を境に後ろの文字列が全て消えてしまう。すっぱりと・・・!
あい[絵文字]うえお->あい
abc[絵文字]def->abc
どんなに長い文字列も絵文字の部分から後ろが全部切れてしまうorz

CHARCODE設定

CHARCODE設定をutf-8からutf8mb4に変更

skip-character-set-client-handshake設定

skip-character-set-client-handshakeを入れるといいよ!という記事があるものの、利用環境によるかもしれない。
SQLインジェクションの脆弱性がある。
利用している環境にあわせてskip-character-set-client-handshakeを使うか、skip-character-set-client-handshakeは使わずに対応していくのがよさそう

JDBCドライバ(Connector/J)の対応

Connector/Jのバージョン5.1.12より前のバージョンでは???に文字化けしていまう問題がある
⇒バージョンを5.1.12より新しいものにする
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT)のエラーが出る。
⇒connectionCollationの設定をする
characterEncoding=UTF-8
connectionCollation=utf8mb4_general_ci


参考

MySQLで4byteのutf8文字列を入れる

JDBCドライバ(Connector/J)でutf8mb4

skip-character-set-client-handshakeパラメータについて

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした