我正在尝试将数据从XML馈送到MySQL数据库,但是我在python和mysql中得到了错误的pt-br字符。
import MySQLdb
import urllib2
import sys
import codecs
## default enconding
reload(sys)
sys.setdefaultencoding('utf-8')
UTF8Writer = codecs.getwriter('utf8')
sys.stdout = UTF8Writer(sys.stdout)
file = urllib2.urlopen('feed.xml')
data = file.read()
file.close()
data = xmltodict.parse(data)
db = MySQLdb.connect(host=MYSQL_HOST, # your host, usually localhost
user=MYSQL_USER, # your username
passwd=MYSQL_PASSWD, # your password
db=MYSQL_DB) # name of the data base
cur = db.cursor()
product_name = str(data.items()[0][1].items()[2][1].items()[3][1][i].items()[1][1])
但是当我用 Python 打印product_name或将其插入 mysql 时,我得到这个:
'Probixc3xb3tica (120caps)'
这应该是:
'Probiótica'
我该如何解决这个问题?
'Probixc3xb3tica'
是'Probiótica'
的UTF-8编码版本。
您的终端(或用于运行此终端的任何内容(是否设置为处理 utf-8 输出?
试着print 'Probixc3xb3tica'.decode('utf-8')
看看会发生什么。
我得到Probiótica
.