Unicode编码错误:' latin-1'在Python中

时间:2014-07-10 07:15:54

标签: python unicode encoding utf-8

我正在尝试编写一个脚本来检索XML数据,然后将它们发送到我的数据库,但我遇到编码或解码问题,我不知道。 我说我早些时候在互联网上搜索并尝试不同的东西,但这并不能解决我的问题。这就是为什么我求助于您找到解决方案。

这是我的代码的一部分:

# -*- coding: utf8 -*-
...
REQ = u"INSERT INTO organismes (NAME_organisme,ID_organisme,ligne,cp,town,lat,lon,tel,fax,email,website) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);"
cursor = db.cursor(MySQLdb.cursors.DictCursor)
cursor.execute(REQ, (NAME,ID,LIGNE,CP,TOWN,LAT,LON,TEL,FAX,MAIL,URL))
cursor.close()

这是错误:

UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2019' in position 9: ordinal not in range(255)

我尝试过很多例子来编码utf8中的代码。我的Notepad ++编码“没有DOM的UTF-8”。

谢谢我回答。

1 个答案:

答案 0 :(得分:0)

源代码的编码不是问题,而是MySQLdb处理unicode值的方式。它的默认编码是Latin-1,它无法编码整个unicode字符范围。您必须告诉MySQLdb使用不同的编码。 charset函数有connect()个参数。我建议使用'utf8'。