这个文本是什么编码?
题
我使用Python的Imaplib从Gmail帐户中获取邮件...但是我收到了一封令人困惑的文字主体的电子邮件:
> RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
> OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
谁可以帮助我从我的电子邮件中读取此文件...
谢谢
LO
解决方案
看起来像base64。在Python中,您可以使用 base64.b64decode
或者 str.decode('base64')
.
message = '''
RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
'''
print message.decode('base64')
结果:
Date et heure: 22/08/2010 14:33:03 GMT Unknown Prénom: jacinto Nom: carvalho E-Mail:
这 é
看起来这是不正确的。看来文本是在UTF-8中编码的,因此您还需要解码UTF-8编码:
print message.decode('base64').decode('utf-8')
结果:
... Prénom: ...
要注意的另一件事是,基本64编码的不同变体在它们用于值62和63的两个符号中有所不同。 base64.b64decode
如果默认值不适合您,则可以指定这两个字符。
其他提示
马克主要是正确的,但也是UTF-8编码的,如 \uc3a9
在“prénom”中。
(而且我试图弄清楚为什么我要获得适当的解码,而标记不适合相同的代码,但这是另一个问题。)
它是64 UTF-8。这个特定的文字说:
Date et heure: 22/08/2010 14:33:03 GMT Unknown
Prénom: jacinto
Nom: carvalho
E-Mail:
不隶属于 StackOverflow