是拉丁语吗?如何将其转换为ansii?

2024-09-30 22:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

从gmail检索文件以保存时,我收到以下错误消息:

Traceback (most recent call last):
  File "C:\a.py", line 32, in on_hello
    if getmail(self):
  File "C:\a.py", line 96, in getmail
    fp = open(att_path, 'wb')
IOError: [Errno 22] invalid mode ('wb') or filename: '.\\=?iso-8859-1?Q?CC_GM=5F
Est=E1vel.xlsx?='

现在,我怀疑=?iso-8859-1?Q?CC_GM=5FEst=E1vel.xlsx?=是问题所在,如何将其转换为ansii?我试过使用各种.解码和.编码组合,但都没有成功。你知道吗

谢谢


Tags: 文件inpy消息错误lineisoxlsx
3条回答

您看到的是Quoted-printable编码(MIME电子邮件头中使用的变体,称为encoded-word)。^{} module为您处理这个问题:

>>> from email.header import decode_header
>>> for part in decode_header('=?iso-8859-1?Q?CC_GM=5FEst=E1vel.xlsx?='):
...     value = str(*part)
...     print(value)
...
CC GM_Estável.xlsx

这是一个MIME编码的邮件头。你知道吗

你应该*能够在这里使用一些东西,也许decode

http://docs.python.org/2/library/email.header.html

*我不经常编写Python;您的里程数可能会有所不同。你知道吗

首先,iso-8859-1有许多ansi没有的字符see this。你确定你可以安全地忽略你处境中的所有角色吗?另一个我更倾向于的想法是iso-8859-1,to(Unicode的一些风格,如utf8、utf16等)。下面是[SO]对您的问题的回答,它将执行转换2。 干杯!你知道吗

相关问题 更多 >