Erreur d'encodage Python: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3
Bonjour,
J'ai un bogue avec mon module Python sous Windows, j'ouvre un fichier text avec des accents, je mets le string dans une variable et j'ouvre le client email par défaut de mes utilisateurs avec le corps du message.
Sur mon poste tout fonctionne bien mais pas sous le poste des mes clients (Windows) également, voici mon code:
Je récupère mon fichier text:
Code:
1 2
| # Get e-mail body file
email_body = open('config/email_body.txt').read().encode('cp1252') |
Puis j'ouvre l'email du client avec le body text et les fichiers attachés:
Code:
1 2 3 4 5 6 7 8 9
| # Open default e-mail client, prepare e-mail
Popen(
obj_config['mail_section']['email_client_exe'].encode('cp1252') +
" -compose " \
"to='" + obj_config['mail_section']['email_to'] + "'," \
"cc='" + obj_config['mail_section']['email_cc'] + "'," \
"subject='" + obj_config['mail_section']['email_subject'] + "'," \
"attachment='" + ','.join(files_list) + "'," \
"body='" + email_body + "'", stdout=PIPE, stderr=PIPE |
Moi tout fonctionne bien mais les autres postes voici l'erreur:
Code:
1 2 3 4 5 6
| ERROR: Traceback (most recent call last):
File "C:\make_thon_rouge_report\make_thon_rouge_report.py", line 151, in send_com_department_report
email_body = open('config/email_body.txt').read().encode('cp1252')
File "C:\Python25\lib\encodings\cp1252.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 40: ordinal not in range(128) |
Note: je redirige la console dans sys.stdout et j'ai aussi tous mes "print" dans un fichier de log en plus...
Une idée sur le standard pour faire ce que je souhaite?
Merci,