【发布时间】:2019-07-27 05:17:37
【问题描述】:
我已将列类型设置为 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();
【问题讨论】:
-
如果您不显示代码,我们怎么知道您做错了什么?例如。您是使用
Statement还是PreparedStatement进行插入? 编辑问题并显示相关代码。 -
准备好的声明。我编辑了问题并添加了一些代码。
-
你的连接也是
utf8mb4吗? -
我尝试了不同的连接字符串,但无法正常工作。 jdbc:mysql://localhost:3306/mySchema?useUnicode=true&character_set_server=utf8mb4 连接到服务器但是还是一样的bug
-
当我尝试“characterEncoding=utf8mb4”时,它会抛出不支持的编码异常
标签: java mysql jdbc unicode utf8mb4