将推文保存到MySql中出现“Incorrect string value: '\xF0\x9F\x92\xB2\xF0\x9F”错误

3
我正在尝试将推文保存到MySql数据库中,大多数情况下都能正常工作,但当出现以下类似的推文时, 示例1 示例2 我会从MySql获得以下异常信息:
java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x92\xB2\xF0\x9F...' for column 'twtText' at row 1

我们如何处理这样的文本。

那么,你最终是如何解决这个问题的? - RobertG
同样在phpMyAdmin,Maria DB 10.1中出现了这个错误。列和表设置为utf8mb4_unicode_ci,不确定问题是什么。 - William Isted
4个回答

1
这对我有用。在MySQL中更改字符集。
ALTER TABLE TableName MODIFY COLUMN ColumnName varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;

不要在uft8mb中使用255,它每个字符使用4个字节而不是3个字节。 - Arnold Roa

0

尝试将列的字符集更改为反映您要插入的字符串的字符集值。

例如:

ALTER TABLE database.table MODIFY COLUMN col VARCHAR(255)  CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

0

0

我遇到了同样的问题并解决了它。

错误的原因是字符串包含表情符号。

  1. 将你的 MySQL 列的字符集设置为 utf8mb4,排序规则设置为 utf8mb4_general_ci
  2. 将连接字符串的字符集设置为 utf8mb4,例如:charset=utf8mb4
  3. 好了,测试一下吧

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接