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]]

当然,我希望此时会看到一个 Emoji 图标,即 .

我需要更改字符编码以进行播放吗?任何想法表示赞赏!

谢谢

4

2 回答 2

0

在查询解决此问题之前添加“SET NAMES utf8mb4”。

于 2013-04-06T00:15:15.360 回答
-1
db.default.url="jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=UTF-8"

使用Unicode=true&characterEncoding=UTF-8

于 2013-04-07T09:37:55.193 回答