【发布时间】:2021-10-29 03:06:25
【问题描述】:
我正在尝试解析 XML 文件并将内容写入纯文本文件。到目前为止,我的程序一直在运行,直到它遇到表情符号字符,然后 Python 抛出以下错误:
UnicodeEncodeError: 'charmap' codec can't encode characters in position 177-181: character maps to <undefined>
我去了错误位置,在XML文件中发现了以下表情符号:
我的问题是如何将它们编码为 unicode 或在写入文件时完全删除/忽略它们。
当我 print() 到控制台时它输出完美,但在写入文件时抛出错误。
我已经搜索了 Google 和这里,但我得到的唯一答案是它们已经被编码为 unicode。如您所见,我的是文字?我不确定我说的是否正确。
我正在使用的 XML 文件也具有以下格式:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<?xml-stylesheet type="text/xsl" href="sms.xsl"?>
<smses count="1">
<sms protocol="0" address="+00000000000" date="1346772606199" type="1" subject="null" body="Lorem ipsum dolor sit amet, consectetur adipisicing elit," toa="null" sc_toa="null" service_center="+00000000000" read="1" status="-1" locked="0" date_sent="1346772343000" readable_date="Sep 4, 2012 10:30:06 AM" contact_name="John Doe" />
</smses>
【问题讨论】:
-
您可以使用
try:和except:来捕获错误吗? -
你现在用什么代码来写输出?您选择的文件编码不支持代码点;你可以选择一个不同的编码,或者你可以选择处理错误。
-
我会说这不是一个糟糕的提议。遍历所有字符,并尝试编写它们。
-
@RSerrao:有比逐个处理字符更好的方法。
-
@MartijnPieters 我是一名 Python 新手,如果您能赐教,我会很高兴!