GNU/Linux >> LINUX-Kenntnisse >  >> Linux

UnicodeDecodeError:'utf8'-Codec kann Byte 0x9c nicht dekodieren

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

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

oder

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

Hinweis: Dies entfernt (ignoriert) die fraglichen Zeichen und gibt den String ohne sie zurück.

Für mich ist dies der ideale Fall, da ich es als Schutz gegen Nicht-ASCII-Eingabe verwende, die von meiner Anwendung nicht zugelassen wird.

Alternativ: Verwenden Sie die offene Methode aus dem codecs Modul zum Einlesen der Datei:

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

Die Umstellung der Engine von C auf Python hat bei mir ausgereicht.

Engine ist C:

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

'utf-8'-Codec kann Byte 0x92 an Position 18 nicht decodieren:ungültiges Startbyte

Engine ist Python:

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

Keine Fehler für mich.


Diese Art von Problem taucht jetzt für mich auf, nachdem ich auf Python 3 umgestiegen bin. Ich hatte keine Ahnung, dass Python 2 Probleme mit der Dateicodierung einfach überrollt.

Ich fand diese nette Erklärung der Unterschiede und wie man eine Lösung findet, nachdem keiner der oben genannten Punkte für mich funktioniert hat.

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

Kurz gesagt, damit sich Python 3 so ähnlich wie möglich zu Python 2 verhält, verwenden Sie:

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

Lesen Sie jedoch den Artikel, es gibt keine Einheitslösung.


Linux
  1. So installieren Sie Python unter Linux

  2. Python-Installationsfehler – Entschuldigung:UnicodeError:nicht unterstützte Escapezeichen können das Unicodedata-Modul nicht laden [Gelöst]

  3. Wie kann ich Tastatur und Maus mit Python steuern?

  4. Wie kann ich das 'Backend' in Matplotlib in Python einstellen?

  5. Wie löst man UnicodeDecodeError in Python 3.6?

So installieren Sie Python 3 unter Windows 10

Installieren Sie Python 3 auf Redhat 8

Python if..else-Anweisung

Wie kann ich einen Warndialog mit Python unter Linux verwenden?

Die Python.h-Datei kann während der Installation von Watchman nicht gefunden werden

Kann ',,' als Alias ​​für '..' verwendet werden?