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

时间:2017-04-02 19:45:15

标签: python xml encoding

我试图将数据从XML Feed发送到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中时,我得到了这个:

'Probi\xc3\xb3tica (120caps)'

这应该是:

'Probiótica'

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

'Probi\xc3\xb3tica''Probiótica'的utf-8编码版本 你的终端(或你用来运行它的任何东西)是否设置为处理utf-8输出?
试试print 'Probi\xc3\xb3tica'.decode('utf-8')看看会发生什么 我得到Probiótica