我已将列类型设置为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();
答案 0 :(得分:1)
我知道了。我需要将characterEncoding=UTF-8
放入JDBC连接URL。
在此处了解更多信息:https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html