我正在尝试将推文保存到 MySql 数据库中,大多数情况下它都可以正常工作,但是当推文类似于下面给出的推文时,
我从 MySql 得到以下异常,
java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x92\xB2\xF0\x9F...' for column 'twtText' at row 1
我们如何处理这样的文本。
这对我有用。更改 MySql 中的字符集
ALTER TABLE TableName MODIFY COLUMN ColumnName varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;
尝试将列的字符集更改为反映要插入的字符串的字符集的值。
例子:
ALTER TABLE database.table MODIFY COLUMN col VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
除了在数据库表/列上设置排序规则外,我们还必须在客户端,在应用程序中设置排序规则:SET NAMES 'utf8mb4';
在实际声明之前。类似错误:不正确的字符串值:'\xF0\x9F\x8E\xB6\xF0\x9F...' MySQL
我得到了同样的问题并解决了它。错误的原因是字符串包含表情符号。
utf8mb4
和排序规则utf8mb4_general_ci
utf8mb4
喜欢charset=utf8mb4