字符串值不正确:'\ xF0 \ x9F \ xA4 \ x96 <b…'for =“” column =“”'body'=“” at =“” row =“” 1 =“”

时间:2019-03-05 16:55:29

标签: java mysql jdbc unicode utf8mb4

=”“

我已将列类型设置为utf8mb4,并将排序规则设置为utf8mb4_bin。该表的默认值也是utf8mb4和utf8mb4_bin。

当我使用SequelPro将表情符号“”手动添加到数据库时,效果很好。

但是,当我使用JDBC执行INSERT时,它给了我错误的字符串值错误。

这是我的连接字符串:jdbc:mysql://localhost:3306/myschema
我正在使用mysql-connector-java-5.1.32-bin.jar

我在做什么错了?

以下是我正在使用的一些代码:

String sql = "INSERT INTO table VALUES (?)"
String body = ...;
statement = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
statement.setString(1, body)
statement.execute();

1 个答案:

答案 0 :(得分:1)

我知道了。我需要将characterEncoding=UTF-8放入JDBC连接URL。

在此处了解更多信息:https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html