1
我有一個將隨機網頁內容存儲到mysql數據庫(MySQLdb)的腳本。對於一些網頁,我得到:插入MySQL時出現Unicode錯誤
...
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py",
line 264, in literal
return self.escape(o, self.encoders)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py",
line 202, in unicode_literal
return db.literal(u.encode(unicode_literal.charset))
UnicodeEncodeError: 'latin-1' codec can't encode character
u'\u203a' in position 172550: ordinal not in range(256)
當我用sqlite3,我有沒有問題。
我想這一次,沒有成功:
CREATE DATABASE the_base CHARACTER SET utf8
問題: 如何編碼/因此被存儲在數據庫中沒有任何有史以來問題的數據正確解碼?
P.S.在蟒蛇字符編碼是一個永無止境的故事...
解決
新增編碼connect
方法:
MySQLdb.connect(... charset='utf8', use_unicode=True)
我剛剛嘗試過'創建數據庫the_base字符集utf8',但仍然是相同的錯誤 –
請確保在連接參數中使用了'charset ='utf-8''(尤其是如果您的數據庫和服務器有不同的編碼)。 – thebjorn
作品!實際上,它需要'utf8','utf-8'會引發錯誤 –