Mysql失敗,異常pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9D\\x90\\xBF;......


問題描述:

  插入Mysql時失敗了,python代碼報如下異常:

  pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9D\\x90\\xBF;......

原因分析:

  UTF-8編碼有可能是兩個、三個、四個字節。Emoji表情是4個字節,而Mysql的utf8編碼最多3個字節,所以數據插不進去。

解決方案:

  修改Mysql表的字符集和Pymysql連接庫時的字符集

  1、修改Mysql表的字符集

    說明:將已經建好的表字符集轉改成 utf8mb4,排序規則改為 utf8mb4_bin

    命令:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; (將TABLE_NAME替換成你的表名)

    注意:排序規則不是 utf8mb4_general_ci,而是utf8mb4_bin,不要想當然

 

  2、修改數據庫連接的字符集        

    conn = pymysql.connect(host='localhost', user='root', password='root', port=3306, db='cncb', charset='utf8mb4')

 


免責聲明!

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



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