J'ai le code suivant dans l'affichage Call ..
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 7470: ordinal not in range(128)
4 Réponses :
Vous êtes également ajouté F.Read () directement à la chaîne Unicode, sans le décoder, si les données que vous lisez à partir du fichier sont codées UTF-8 Utilisez UTF-8, sinon utilisez tout ce qui est codé.
< Fort> décodez d'abord, puis appendez-le au corps fort> par exemple p>
La réponse d'Anurag est correcte. Cependant, un autre problème ici est que vous ne pouvez pas savoir le codage des fichiers que les utilisateurs téléchargent. Il peut être utile de boucler sur un tuple des plus courants que vous obtenez la bonne:
encodings = ('windows-xxx', 'iso-yyy', 'utf-8',)
for e in encodings:
try:
data = f.read().decode(e)
break
except UnicodeDecodeError:
pass
Si vous ne contrôlez pas le codage de fichier pour les fichiers pouvant être téléchargés, vous pouvez deviner ce que l'encodage d'un fichier consiste à utiliser le Détecteur de codage universel module Chardet code>. P>
Merci et je vais vous uppoter tous vous une fois inscrit =)
Pour quiconque qui fait face au problème de nos jours; smart_unicode a été renommé à smart_text github.com/release-frineering/kobo/pull/123<< a>