Python中的Unicode编码错误:'latin-1
我正在尝试编写一个脚本,目的是获取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)
我尝试了很多例子来把这段代码编码成UTF-8格式。我的Notepad++显示的是“UTF-8无BOM”。
谢谢你们的回复。
1 个回答
0
这不是源代码编码的问题,而是 MySQLdb
如何处理 unicode
值的问题。它的默认编码是 Latin-1,这种编码无法表示所有的 unicode 字符。你需要告诉 MySQLdb
使用不同的编码。对于 connect()
函数,有一个 charset
参数。我建议使用 'utf8' 编码。