J'écris un logiciel de traitement de courrier en Python qui rencontre des octets étranges dans les champs d'en-tête. Je soupçonne que c'est juste du courrier mal formé; le message lui-même prétend être nous-ascii, donc je ne pense pas qu'il y ait un vrai codage, mais je voudrais sortir une chaîne unicode approximant celle d'origine sans lancer un UnicodeDecodeError
. Donc, je suis à la recherche d'une fonction qui prend un str
et éventuellement quelques indices et fait de son mieux pour me redonner un unicode
. Je pourrais en écrire un bien sûr, mais si une telle fonction existe, son auteur a probablement réfléchi un peu plus sur la meilleure façon d'y parvenir.Y at-il une fonction de bibliothèque Python qui tente de deviner le codage de caractères de certains octets?
Je sais aussi que la conception de Python préfère explicitement à implicite et que la bibliothèque standard est conçue pour éviter la magie implicite dans le décodage du texte. Je veux juste dire explicitement "allez-y et devinez".
Vous pouvez ignorer le cas '' ascii'' à la fin et utiliser simplement 'latin1', puisque' latin1' décodera toutes les valeurs de 256 octets sans erreur. –