GNU/Linux >> Linux Esercitazione >  >> Linux

UnicodeDecodeError:il codec 'utf8' non può decodificare il byte 0x9c

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

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

o

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

Nota: Questo eliminerà (ignorerà) i caratteri in questione restituendo la stringa senza di essi.

Per me questo è il caso ideale poiché lo sto usando come protezione contro l'input non ASCII che non è consentito dalla mia applicazione.

In alternativa: Usa il metodo aperto dal codecs modulo da leggere nel file:

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

Cambiare il motore da C a Python ha funzionato per me.

Il motore è C:

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

Il codec 'utf-8' non può decodificare il byte 0x92 in posizione 18:byte iniziale non valido

Il motore è Python:

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

Nessun errore per me.


Questo tipo di problema si presenta per me ora che sono passato a Python 3. Non avevo idea che Python 2 stesse semplicemente risolvendo a vapore qualsiasi problema con la codifica dei file.

Ho trovato questa bella spiegazione delle differenze e di come trovare una soluzione dopo che nessuno dei precedenti ha funzionato per me.

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

In breve, per fare in modo che Python 3 si comporti il ​​più possibile simile a Python 2 usa:

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

Tuttavia, leggi l'articolo, non esiste una soluzione adatta a tutte le dimensioni.


Linux
  1. Errore di installazione di Python – Spiacenti:UnicodeError:gli escape non supportati non possono caricare il modulo unicodedata [Risolto]

  2. Come mettere una maschera di bit su /dev/zero in modo da poter ottenere byte diversi da zero?

  3. Python:nessun file o directory del genere ma posso vederlo!?

  4. Come posso impostare il 'backend' in matplotlib in Python?

  5. Come risolvere UnicodeDecodeError in Python 3.6?

Come installare Python 3 su Windows 10

Installa Python 3 su Redhat 8

Python if..else Istruzione

Quali linguaggi di programmazione posso assumere su un server Linux casuale per impostazione predefinita?

Come posso ottenere un binario da un file .py

Come posso verificare se un volume è montato dove dovrebbe utilizzare Python?