如何解决替换无法编码的字符
我目前正在做一些我需要从网站上提取.xml
并与之合作的事情。
一切正常,但是如果我尝试打印.xml
(或解析后的文本)并且.xml
中有一些字符无法编码,我会收到错误消息: / p>
return codecs.charmap_encode(input,self.errors,encoding_table)
[0]UnicodeEncodeError: 'charmap' codec can't encode character '\u2665' in position 1161: character maps to <undefined>
现在,我想找到这些字符并将其替换为“?”例如。
我该怎么做?
是否有更好的方法来处理这些错误?
解决方法
如果您编写了生成该错误的代码,则通常在任何情况下都可以更轻松地为您提供帮助,您可以在utf8
中对字符串进行编码,然后进行解码:
data = '\u2665'
data = data.encode('utf8')
print(data) # b'\xe2\x99\xa5'
data_d = data.decode('utf8')
print(data_d) # ♥
此外,您可以在脚本的开头添加以下行:
# -*- coding: utf-8 -*-
,然后使用以下命令验证stdout.encoding
:
import sys
print(sys.stdout.encoding)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。