我正在尝试编写一个脚本来检索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”。
谢谢我回答。
答案 0 :(得分:0)
源代码的编码不是问题,而是MySQLdb
处理unicode
值的方式。它的默认编码是Latin-1,它无法编码整个unicode字符范围。您必须告诉MySQLdb
使用不同的编码。 charset
函数有connect()
个参数。我建议使用'utf8'。