ランダムな Web ページのコンテンツを mysql データベース ( MySQLdb ) に保存するスクリプトがあります。一部のページでは、次のようになります。
...
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
質問: データを正しくエンコード/デコードして、問題なく DB に格納するにはどうすればよいですか?
PS Pythonでの文字エンコーディングは終わりのない話です...
解決済み
メソッドにエンコーディングを追加しましたconnect
:
MySQLdb.connect( ... charset='utf8', use_unicode=True )