作业帮 > 综合 > 作业

Python 报错'ascii' codec can't decode byte 0xe5 in position 0:

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/19 21:34:59
Python 报错'ascii' codec can't decode byte 0xe5 in position 0:ordinal not in range(128)
通过正则表达式匹配结果是中文,然后我想把中文写到一个XML文件中,就报出这样的错误.UserNameNode.text = user['UserName'],其中user['UserName']是中文.这个是什么问题,该怎么解决?
不行就转一下码试试.
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的。 不行把文件内容贴下
再问: NickNameNode = creat_element_with_text(RootNode, 'NickName', str(user['NickName'])) 函数如下: def creat_element_with_text(upnode,tagname,nodetext): subnode = SubElement(upnode,tagname) subnode.text = nodetext return subnode 其中:user['NickName']中包含数字、英文字母、汉字
再答: user['NickName'].decode('UTF-8')