Problème d'encodage
Fermé
Elponito
Messages postés
51
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
21 décembre 2015
-
10 juin 2014 à 16:45
Elponito Messages postés 51 Date d'inscription vendredi 23 mai 2014 Statut Membre Dernière intervention 21 décembre 2015 - 11 juin 2014 à 08:54
Elponito Messages postés 51 Date d'inscription vendredi 23 mai 2014 Statut Membre Dernière intervention 21 décembre 2015 - 11 juin 2014 à 08:54
A voir également:
- Problème d'encodage
- Encodage ascii - Guide
- Encodage binaire - Guide
- Parametre d'encodage non pris en charge - Guide
- Encodage youtube mp3 - Guide
- Modifier encodage excel - Forum Programmation
2 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
10 juin 2014 à 18:47
10 juin 2014 à 18:47
'lut, me revoilà ;)
Tu as la trace des appels qui a donné cette erreur?
Après quelques recherches, c'est très probablement le print qui fout tout en l'air: Windows est mal fait sur ce point: sa console déteste la sortie en Unicode. Python devrait gérer ça avec la fonction API Windows
J'ai trouvé ça sur ce topic StackOverflow et ils propose un code pour permettre l'écriture de noms internationaux dans la console, tu peux t'en servir.
Mais ça reste moche.
Tu as la trace des appels qui a donné cette erreur?
Après quelques recherches, c'est très probablement le print qui fout tout en l'air: Windows est mal fait sur ce point: sa console déteste la sortie en Unicode. Python devrait gérer ça avec la fonction API Windows
WriteConsole, mais pour garder une continuité avec les autres OS et mécanismes, il utilise la sortie standard. Or, Python ne sait pas encoder les noms bizzares pour cette console encodée en CP-jesaispasquoi.
J'ai trouvé ça sur ce topic StackOverflow et ils propose un code pour permettre l'écriture de noms internationaux dans la console, tu peux t'en servir.
Mais ça reste moche.
Elponito
Messages postés
51
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
21 décembre 2015
8
11 juin 2014 à 08:54
11 juin 2014 à 08:54
Encore une fois merci @gravgun :) Tu as tout à fait raison c'est bien la commande print qui fous la merde, du coup j'avais remplacer avec ceci:
mais ça me met des point d'interrogation du coup dans mes noms de fichiers et je redirige les sorties vers un fichier texte et de ce fait je peux pas réutiliser le résultat.. Je vais me pencher sur ta solution, encore une fois merci pour ton aide précieuse :)
print(os.path.join(root, filename).encode(sys.stdout.encoding,'replace'))
mais ça me met des point d'interrogation du coup dans mes noms de fichiers et je redirige les sorties vers un fichier texte et de ce fait je peux pas réutiliser le résultat.. Je vais me pencher sur ta solution, encore une fois merci pour ton aide précieuse :)