我试图将数据从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'
我该如何解决这个问题?
答案 0 :(得分:1)
'Probi\xc3\xb3tica'
是'Probiótica'
的utf-8编码版本
你的终端(或你用来运行它的任何东西)是否设置为处理utf-8输出?
试试print 'Probi\xc3\xb3tica'.decode('utf-8')
看看会发生什么
我得到Probiótica
。