2

私はプレイ フレームワーク 2.0.x を使用しています。絵文字の挿入に問題があります。SQL クラスが、挿入しようとしている正しい文字ではなく、これらをマップされた文字列値に変換しているようです。私はすでに MySQL でテストを行っており、utf8mb4 設定で問題なく動作します。これは、play を使用して挿入を行う場合にのみ発生し、挿入前に変換を行うクエリを作成するものに絞り込みました。

SQL オブジェクト内のこのクエリで変換が発生していることを明確に確認できます

SQL(
                  """
                      UPDATE users SET 
                      first_name={fname}
                      , last_name={lname}
                      , email={email}
                      , birthdate={bday}
                      , gender={sex}
                      WHERE user_id={userId} 
                  """
                  ).on(
                      'userId -> userId,
                      'fname -> fname,
                      'lname -> lname,
                      'email -> email.trim,
                      'bday ->bday,
                      'sex -> gender
                  ).executeUpdate()

Execution exception [[SQLException: Incorrect string value: '\xF0\x9F\x98\x9A' for column 'first_name' at row 1]]

もちろん、この時点で絵文字アイコンが表示されることを期待しています。

プレイのために変更する必要がある文字エンコーディングはありますか? どんなアイデアでも大歓迎です!

ありがとう

4

2 に答える 2

0

クエリの前に「SET NAMES utf8mb4」を追加すると、この問題が解決しました。

于 2013-04-06T00:15:15.360 に答える