从 python 中的 xml 获取 pt-br 中的错误字符



我正在尝试将数据从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.