Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's this text encoding?

I used Python's imaplib to pull mail from a gmail account... but I got an email with this confusing text body:

> RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
> OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

who can help me to read this file from my email...

Thx

lo

like image 972
laurent Avatar asked Dec 06 '22 01:12

laurent


1 Answers

It looks like base64. In Python you can either use base64.b64decode or str.decode('base64').

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

print message.decode('base64')

Result:

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

The é looks like it is incorrect. It appears that the text was encoded in UTF-8, so you also need to decode the UTF-8 encoding:

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

Result:

...
Prénom:
...

One other thing to be aware of is that there are different variants of Base64 encodings that differ in the two symbols they use for value 62 and 63. Using base64.b64decode you can specify these two characters if the defaults don't work for you.

like image 111
Mark Byers Avatar answered Dec 10 '22 10:12

Mark Byers