在MySql中保存推文会抛出“不正确的字符串值:'\ xF0 \ x9F \ x92 \ xB2 \ xF0 \ x9F”

时间:2013-08-19 11:21:00

标签: mysql

我正在尝试将推文保存到MySql数据库中,大部分时间它工作正常,但是当推文类似下面给出的推文时,

Example 1 Example 2

我从MySql中获得以下异常,

java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x92\xB2\xF0\x9F...' for column 'twtText' at row 1

我们如何处理这些文本。

4 个答案:

答案 0 :(得分:0)

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

示例:

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

答案 1 :(得分:0)

除了在数据库表/列上设置排序规则之外,我们还必须在应用程序中的客户端上设置排序规则: SET NAMES' utf8mb4';

在实际陈述之前。 类似的错误:Incorrect string value: '\xF0\x9F\x8E\xB6\xF0\x9F...' MySQL

答案 2 :(得分:0)

这对我有用。更改MySql中的字符集

ALTER TABLE TableName MODIFY COLUMN ColumnName varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;

答案 3 :(得分:0)

我得到了相同的发布并解决了它。 错误的原因是该字符串包含表情符号。

  1. 将您的mysql列的charset设置为utf8mb4,将Collat​​ion设置为utf8mb4_general_ci
  2. 将charset的连接字符串设置为utf8mb4,如charset=utf8mb4
  3. 好的,测试一下