Script python et affichage des accents dans une console DOS

Résolu/Fermé
Pulsar - Modifié le 27 juin 2017 à 17:37
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 5 juil. 2017 à 09:50
Bonjour,

J'essaye simplement de récupérer le contenu d'un fichier texte avec un script python et de l'afficher dans une console ms-dos.

Sauf que les accents ne passent pas du tout. L'encodage du fichier texte est en utf-8, la console possède un encodage en cp1252. Du coup je convertis dans un premier temps le contenu du fichier en unicode puis je l'encode en cp1252, mais ça ne marche pas mieux

Ci-dessous le code :
# -*- coding:Utf-8 -*-

var = ''
with open(dir+'fichier.txt', 'r') as f: var = f.read()
var = unicode(var, 'Utf-8').encode('cp1252')
print var

Par contre si je remplace cp1252 par le cp850 ça m'affiche effectivement ce que je veux MAIS dans mon fichier texte il arrive parfois qu'il y ait des caractères qui n'existent justement pas dans l'encodage cp850, la console m'affichera alors une erreur
A voir également:

3 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
28 juin 2017 à 10:09
Bonjour,

Je n'ai jamais fait de python sous windows, mais as-tu essayé d'afficher directement la chaîne unicode comme suggéré ici ?
https://stackoverflow.com/questions/15200990/print-utf-8-characters-in-cmd-using-python

Bonne chance
0
Bonjour,

Bon j'ai finalement trouvé. J'ai enregistré le contenu du fichier texte sous l'encodage cp1252 et ensuite quand mon script récupère le fichier, je le décode en cp1252 pour l'encoder en cp850.

C'est tordu comme solution, mais les accents s'affichent bel et bien après ce tour de passe passe

Merci quand même de ton aide mamiemando
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
5 juil. 2017 à 09:50
Merci pour ton retour, mais la solution que je proposais ne marchait pas ? Si tu as la possibilité de reporter un code minimal qui montre ta solution, ça pourrait sans doute aider les gens qui tombe sur ce fil de discussion !
0