GNU/Linux >> Tutoriels Linux >  >> Linux

UnicodeDecodeError :le codec 'utf8' ne peut pas décoder l'octet 0x9c

http://docs.python.org/howto/unicode.html#the-unicode-type

str = unicode(str, errors='replace')

ou

str = unicode(str, errors='ignore')

Remarque : Cela supprimera (ignorera) les caractères en question en renvoyant la chaîne sans eux.

Pour moi, c'est le cas idéal puisque je l'utilise comme protection contre les entrées non-ASCII, ce qui n'est pas autorisé par mon application.

Alternative : Utiliser la méthode open du codecs module à lire dans le fichier :

import codecs
with codecs.open(file_name, 'r', encoding='utf-8',
                 errors='ignore') as fdata:

Changer le moteur de C en Python a fait l'affaire pour moi.

Le moteur est C :

pd.read_csv(gdp_path, sep='\t', engine='c')

Le codec 'utf-8' ne peut pas décoder l'octet 0x92 en position 18 :octet de début invalide

Le moteur est Python :

pd.read_csv(gdp_path, sep='\t', engine='python')

Aucune erreur pour moi.


Ce type de problème surgit pour moi maintenant que je suis passé à Python 3. Je n'avais aucune idée que Python 2 ne faisait que résoudre à la vapeur les problèmes d'encodage de fichiers.

J'ai trouvé cette belle explication des différences et comment trouver une solution après qu'aucune des solutions ci-dessus n'ait fonctionné pour moi.

http://python-notes.curiousefficiency.org/en/latest/python3/text_file_processing.html

En bref, pour que Python 3 se comporte de manière aussi similaire que possible à Python 2, utilisez :

with open(filename, encoding="latin-1") as datafile:
    # work on datafile here

Cependant, lisez l'article, il n'y a pas de solution unique.


Linux
  1. Comment puis-je contrôler le clavier et la souris avec Python ?

  2. Comment puis-je définir le 'backend' dans matplotlib en Python?

  3. Comment résoudre UnicodeDecodeError en Python 3.6 ?

  4. Quels langages de programmation puis-je utiliser par défaut sur un serveur Linux aléatoire ?

  5. ',,' peut-il être associé à '..' ?

Comment installer Python 3 sur Windows 10

Installer python 3 sur Redhat 8

Instruction Python if..else

Pouvons-nous utiliser du code C en Python ?

Comment puis-je utiliser une boîte de dialogue d'alerte avec Python sous Linux ?

Impossible de trouver le fichier Python.h lors de l'installation de Watchman