Signaler

Script python et affichage des accents dans une console DOS [Résolu]

Posez votre question Pulsar - Dernière réponse le 5 juil. 2017 à 09:50 par mamiemando
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
Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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 !
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !