无法编码或解码以在字符串上看到“ç”

问题描述

我正在从电子邮件获取尸体,并试图进行一些比较和打印。

我没有得到它,因为我的字符串有特殊字符,python返回了我= E7而不是ç。还有一些奇怪的代码,我相信它来自html:

'\r\n________________________________\r\nDe: Transfer=EAncia de Cliente\r\nEnviado'

'BATIST=\r\nA'

'solicita=E7=E3o'

我已经尝试了一切,我最后使用的是:

bytes.fromhex("E7").decode("ISO-8859-1")

可正确返回“ç”,但在尝试使用其他字符串时却给我一个错误

a = '\r\n________________________________\r\nDe: Transfer=EAncia de Cliente\r\nEnviado: segunda-feira'

bytes.fromhex(a).decode("ISO-8859-1")

ValueError: non-hexadecimal number found in fromhex() arg at position 2

你能帮我吗? 我的语言是:pt br

解决方法

第二个fromhex失败的原因是因为您没有给它提供十六进制数据。十六进制数据只能包含字符A-F和0-9,并且它们必须是偶数。了解您第一次如何将fromhex与“ E7”配合使用。

我认为您的数据采用“可报价打印”格式,因此您应该尝试https://docs.python.org/3.8/library/quopri.html

要安装它,请使用python -m pip install quopri