Python 报错'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
通过正则表达式匹配结果是中文,然后我想把中文写到一个XML文件中,就报出这样的错误。UserNameNode.text=user['UserName'],其中user['...
通过正则表达式匹配结果是中文,然后我想把中文写到一个XML文件中,就报出这样的错误。 UserNameNode.text = user['UserName'],其中user['UserName']是中文。这个是什么问题,该怎么解决?
展开
4个回答
展开全部
不行就转一下码试试。
user['UserName'].encode('gbk') 或者是utf8,utf16,看你user里面的编码了。
user['UserName'].encode('gbk') 或者是utf8,utf16,看你user里面的编码了。
更多追问追答
追问
user['UserName']的编码是UTF-8编码的。然后他被存到字典user里面去了,存的时候是存的编码\x85\x98之类的东东,编码在计算机里面是以ASCII方式存储的。然后用ElementTree构建树的时候无法从ASCII中把UTF-8编码给取出来,所以就出现这样的问题,所以想问该怎么解决。
追答
存的是str么?那就是user['UserName'].decode('gbk') 或者是decode('utf8'),看你自己的编码了。在文件第一行,加个#coding:gbk或者utf8注释了么?我一般py文件是ansi的,注释是gbk,只有template一般是utf8的。
不行把文件内容贴下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
user['UserName'].encode('utf-8')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是xml吗,还是什么
dict里存的是utf-8,一般write的时候有个encode参数,你指定一下。
dict里存的是utf-8,一般write的时候有个encode参数,你指定一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询