錯誤彙總1 插入中文報錯

2021-10-08 08:37:40 字數 1398 閱讀 5579

python**連線mysql資料庫執行mysql語句 插入帶有中文字元的語句 

報錯內容如下:  

cur.execute(sql)

file "build/bdist.linux-x86_64/egg/mysqldb/cursors.py", line 181, in execute

query = query.encode(db.unicode_literal.charset)

unicodeencodeerror: 'latin-1' codec can't encode characters in position 952-954: ordinal not in range(256)

2020-07-21 11:23:47,644 - exec_make.py:134 - exception logged

traceback (most recent call last):

file "exec_make.py", line 127, in exch_insert

cur.execute(sql)

file "build/bdist.linux-x86_64/egg/mysqldb/cursors.py", line 181, in execute

query = query.encode(db.unicode_literal.charset)

unicodeencodeerror: 'latin-1' codec can't encode characters in position 952-954: ordinal not in range(256)

處理辦法:

0、python** 預設編碼 utf-8

1、插入的中文前面加上字首  u 宣告utf編碼

insert  "name": u"中文"

2、在插入執行的語句前面執行一下語句

conn = connectmysql()

cur = conn.cursor()

conn.set_character_set('utf8')

cur.execute('set names utf8;')

cur.execute('set character set utf8;')

cur.execute('set character_set_connection=utf8;')

cur.execute(sql)

解決ok!

【mysql編碼介紹】

1、編碼 encode編碼  decode解碼

utf-8是unicode實現的方法之一  unicode 是「字符集」utf-8 是「編碼規則」

字符集:為每乙個「字元」分配乙個唯一的 id(學名為碼位 / 碼點 / code point)

編碼規則:將「碼位」轉換為位元組序列的規則(編碼/解碼 可以理解為 加密/解密 的過程)

Mysql插入中文報錯

插入語句 insert into person id,name,age,values 1,黃蓉 24,女 報錯 incorrect string value xbb xc6 xc8 xd8 for column name at row 1 分析 這是中文亂碼的原因,深層原因是utf 8編碼有可能是兩...

向mysql 插入中文數值報錯

報錯 error 1366 incorrect string value xe6 xb5 x8b xe8 xaf x95 for column description at row 1 原因是資料庫字段沒有設定編碼為utf8而是預設的lanti 1 檢視表中的各字段的屬性 show full col...

MySQL插入中文資料報錯

在運算元據庫插入中文會出現如下錯誤 error 1366 hy000 incorrect string value xc4 xe3 xba xc3 for column username at row 1 解決方案 在cmd中檢視當前資料庫的編碼設定 server db client conn 各自...