2

私は mysql 5.5.24 サーバーで DBA として働いています。最近、あるユーザーが iPhone からログオンしようとしたときに、その電話名自体に絵文字が含まれていたという問題が発生しました。

現在、私たちのシステムには 3 バイトをサポートする utf8 文字セットがありますが、その電話名には絵文字 (4 バイト) が含まれていたため、登録に失敗しました。

このリンクで述べたように、開発セットアップで同じシナリオを再現しようとしましたが、まだ問題に直面しています:

  1. DBのその列のみの文字セットをutf8mb4に変更してから試しました-成功しません
  2. DB全体の文字セットをutf8mb4に変更して修正しました-成功しません

Java ログ:

2013-01-08 11:21:54,547 ERROR [org.hibernate.util.JDBCExceptionReporter] (http-0.0.0.0) Incorrect string value: '\xF0\x9F\x98\x84' for column 'deviceDescription' at row 1

DB ログ:

insert into deviceDetails (deviceDescription, remoteStatus, deviceStatus) values ('?', 0, 1)

注: Java 側の文字セットはまだ utf8 です。問題になる可能性はありますか?

4

2 に答える 2

2

ここを参照してください。また、接続文字セットが utfmb4 であることを確認してください。

Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
于 2013-04-20T20:55:41.863 に答える