1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89\\xE3\\x80...' for column 'content' at row 1"

问题描述:Python从网站中抓取网页文本保存到MySQL数据中,对应数据库字段为longtext,字符编码utf-8。部分插入成功,部分插入失败,报错如下。
1366, "Incorrect string value: ‘\\xF0\\x9F\\x91\\x89\\xE3\\x80...‘ for column ‘content‘ at row 1"

是因为mysql不能识别4个字节的utf8编码的字符,抛出了异常,这应该也是问题的根源。?、??、类似于这种4个字节,将对应字符类型换成将对应的数据类型改为utf8mb4类型,同时连接类型也要改成utf8mb4_general_ci.

原因:

Mysql里UTF8编码最多只能支持3个字节,而Emoji表情字符使用的UTF8编码,很多都是4个字节,有些甚至是6个字节。

解决:

把要存入的数据库和表的编码及改为utf8mb4

还有python连接数据库的属性也要修改字符集

故:按以上操作,重新建数据库和表

操作后,产生第二个报错信息:

(2019, “Can’t initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)”) 错误解决方案

原因是mysql的驱动不支持,解决方法:

卸载mysql-python,改为安装 mysqlclient 最新版, windows下安装则  http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient  下载,然后就支持了。

在以上网址中下载

参考文章:https://blog.csdn.net/wzqnls/article/details/53412635

找对应的版本下载,在win中安装whl文件。

win中安装whl文件的步骤:

1 . pip install wheel

2 . pip install  [whl文件的全路径名]  或者 在whl所在的目录下,使用cmd,然后 pip install xxxx.whl

1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89\\xE3\\x80...' for column 'content' at row 1"

原文地址:https://www.cnblogs.com/yoyowin/p/12343549.html

时间: 2024-10-12 14:28:09

1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89\\xE3\\x80...' for column 'content' at row 1"的相关文章

emoji写数据库错误:“Incorrect string value: '\xF0\x9F\x91\x8D 2...' for column 'mark' at row 1” 解决方案

偶然遇到了这个问题,记录下来,关于编码以及数据库字符集相关的问题一直很麻烦. ??这个表情字符在存库时报告错误:Incorrect string value: '\xF0\x9F\x91\x8D 2...' for column 'mark' at row 1 解决方案如下: UTF-8编码有可能是两个.三个.四个字节,Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql的安装目录下找到my.ini,作如下修

Mysql之Incorrect string value: '\xF0\x9F\x98\x89 \xE6... 保存emoji表情

错误信息如下: Incorrect string value: '\xF0\x9F\x98\x89 \xE6...' 问题产生的原因是字符串不兼容4字节的unicode导致的,一般我们常见的表情编码等 解决方案: 1.数据库支持,配置文件是my.cnf [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake =

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x9A\x80\xF0\x9F...' for column 'name' at row 1

1.异常提示: 12:59:10.000 [http-nio-8080-exec-40] DEBUG o.s.j.s.SQLStateSQLExceptionTranslator - Extracted SQL state class 'HY' from value 'HY000' 12:59:10.000 [http-nio-8080-exec-40] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional Sq

java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'

java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName' at row 1 甚是纠结,我原本以为应该是以下问题之一: (1).创建数据库的时候数据编码设置错误 (2).连接数据库的时候数据编码设置错误 对于(1),我删除来原来的数据库,重新创建一个新的数据库在设置编码时,我的设置如下: character set:utf8 -- UTF-8 Unicode

nested exception is java.sql.SQLException: Incorrect string value: '\xE7\x99\xBB\xE9\x99\x86...' for column 'image' at row 1

HTTP Status 500 - Hibernate operation: could not insert: [cn.itcast.shop.product.vo.Product]; uncategorized SQLException for SQL [insert into product (pname, market_price, shop_price, image, pdesc, is_hot, pdate, csid) values (?, ?, ?, ?, ?, ?, ?, ?)

MySql中报错:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBB' for column

问题描述: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBB' for column 'nickName' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226) at com.mysql.jdbc.M

MYSQL导入数据时,出现错误:Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1

Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql的安装目录下找到my.ini,作如下修改: [mysqld] character-set-server=utf8mb4 [mysql] default-character-

php 解决MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误

在项目中向MySQL插入数据时,发现数据插入不完整,通过调试,发现插入语句也没什么特殊的错误.但是就是差不进去,于是就打开mysqli错误的调试 $ret = mysqli_query($this->conn, $sql) or die(mysqli_error($this->conn)); 结果弹出如下错误信息: Incorrect string value: '\xF0\x9F\x92\x8BTi...' 有错误信息就好办了,结果上网一查结果是:mysql编码格式utf-8格式,不支持带四

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x87<b

实际开发中遇到的 情景: 解决方案:  复制的别人的博客,没测试, Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql的安装目录下找到my.ini,作如下修改: [mysqld] character-set-server=