【发布时间】:2012-11-19 04:12:19
【问题描述】:
我有以下字符串值:“walmart obama ????????”
我正在使用 MySQL 和 Java。
我收到以下异常:`java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'
这是我要插入的变量:
var1 varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL`
我的 Java 代码试图插入“walmart obama ????????”是一个preparedStatement。所以我使用的是setString() 方法。
看起来问题是值的编码??????????。我怎样才能解决这个问题?以前我使用的是 Derby SQL 和值 ??????????只是最终变成了两个正方形(我认为这是空字符的表示)
非常感谢所有帮助!
【问题讨论】:
-
创建数据库时,可以这样给出字符集和排序规则:
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
标签: java mysql encoding character-encoding sqlexception