Question

J'ai utilisé imaplib Python au courrier de traction à partir d'un compte gmail ... mais je suis un email avec ce corps de texte confus:

> RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
> OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

qui peut me aider à lire ce fichier de mon email ...

Thx

lo

Était-ce utile?

La solution

Il ressemble à base64. En Python, vous pouvez utiliser base64.b64decode ou str.decode('base64') .

message = '''
RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
'''

print message.decode('base64')

Résultat:

Date et heure:                           22/08/2010 14:33:03 GMT Unknown
Prénom:                                   jacinto
Nom:                                     carvalho
E-Mail:

Le é ressemble est incorrecte. Il semble que le texte a été codé en UTF-8, donc vous avez également besoin de décoder l'encodage UTF-8:

print message.decode('base64').decode('utf-8')

Résultat:

...
Prénom:
...

Une autre chose à prendre en compte est qu'il existe différentes variantes de codages Base64 qui diffèrent dans les deux symboles qu'ils utilisent pour la valeur 62 et 63. L'utilisation base64.b64decode vous pouvez spécifier ces deux caractères si les valeurs par défaut ne fonctionne pas pour vous .

Autres conseils

Mark est la plupart du temps correct, mais il est également UTF-8 codé comme en témoigne le \uc3a9 dans « Prénom ».

(Et je suis en train de comprendre pourquoi je reçois un décodage correct et Mark ne pas le même code, mais c'est une autre question.)

Il est Base-64 UTF-8. Ce texte particulier dit:

Date et heure:                           22/08/2010 14:33:03 GMT Unknown
Prénom:                                   jacinto
Nom:                                     carvalho
E-Mail:                                
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top