1

我有一个脚本,将随机网页的内容存储到 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

问题:如何正确编码/解码数据,以便将其存储在数据库中而不会出现任何问题

python下的PS字符编码是一个永无止境的故事……

解决了

为方法添加了编码connect

MySQLdb.connect( ... charset='utf8', use_unicode=True )
4

1 回答 1

1

您不能将随机 unicode 存储在只有约 256 个可能条目的编码中(即 latin-1)。将数据库中的编码更改为例如 utf-8,您应该一切顺利。

于 2012-11-16T19:07:26.267 回答