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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM