2016-06-07 45 views
2

這是推動我瘋了,我已經從社區嘗試過不同的建議,但它似乎沒有工作。我試着用utf-8重新創建數據庫,但它仍然給我這個錯誤。UnicodeEncodeError:「Latin-1的」編解碼器在637位置不能編碼字符「 u2013」​​:在範圍序數不(256)

基本上我用pymysql模塊和寫入數據庫。

openconnect = pymysql.connect(主機= 'XXXX',端口= 3306,用戶= 'XXX',的passwd = 'XXX',分貝= 'XXXX') opencursor = openconnect.cursor()

我的柱中的一個具有所述問題,基本上我試圖這些選項...

引起的問題是受試者中的列和我試圖下面

受試者=(df.Subject [I])

subject.encode('latin-1','ignore')

然後嘗試寫入數據庫它失敗。 如果我嘗試subject.encode('latin-1')也失敗。

我有兩個選擇,要麼修復編碼或如何設置上pymysql聯合使用UTF-8?我驗證了數據庫,MySQL上的聯盟設置爲utf-8。非常感謝您對這個輸入..

還在爲此苦苦掙扎。 歡呼 卡比爾

+0

不知何故在格式化問題主題=(df.Subject [1]),並在下次line subject.encode('latin-1','ignore') – NKB

+0

'# - * - coding:utf-8 - * - '在腳本的頂部添加這一行。 –

+0

我只是去嘗試..和仍然它給出了相同的錯誤 – NKB

回答

8

我能夠通過定義pymysql字符集來解決問題連接

openconnect = pymysql.connect(主機= 'XXXX',端口= 3306,用戶= 'XXX',passwd文件= 'XXX',DB = 'XXXX',字符集= 'utf-8')

請注意這是UTF8而不是UTF8

+1

不知道爲什麼downvotes。我得到了同樣的問題,並且'charset ='utf8''解決了它。謝謝 :) – Kamil

相關問題