GNU/Linux >> Tutoriales Linux >  >> Linux

UnicodeDecodeError:el códec 'utf8' no puede decodificar el byte 0x9c

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

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

o

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

Nota: Esto eliminará (ignorará) los caracteres en cuestión y devolverá la cadena sin ellos.

Para mí, este es el caso ideal, ya que lo estoy usando como protección contra la entrada que no es ASCII, lo que no está permitido en mi aplicación.

Alternativamente: Usa el método abierto del codecs módulo para leer en el archivo:

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

Cambiar el motor de C a Python funcionó para mí.

El motor es C:

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

El códec 'utf-8' no puede decodificar el byte 0x92 en la posición 18:byte de inicio no válido

El motor es Python:

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

No hay errores para mí.


Este tipo de problema surge para mí ahora que me he mudado a Python 3. No tenía idea de que Python 2 simplemente estaba solucionando cualquier problema con la codificación de archivos.

Encontré esta buena explicación de las diferencias y cómo encontrar una solución después de que nada de lo anterior funcionó para mí.

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

En resumen, para hacer que Python 3 se comporte de la manera más similar posible a Python 2, use:

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

Sin embargo, lea el artículo, no hay una solución única para todos.


Linux
  1. ¿Puede Python detectar con qué sistema operativo se está ejecutando?

  2. UnicodeDecodeError:el códec 'utf8' no puede decodificar el byte 0x9c

  3. ¿Podemos usar código C en Python?

  4. ¿Cómo resolver UnicodeDecodeError en Python 3.6?

  5. ¿Qué lenguajes de programación puedo asumir en un servidor Linux aleatorio de forma predeterminada?

Cómo instalar Python en Linux

Cómo instalar Python 3 en Windows 10

Instalar python 3 en Redhat 8

Declaración de Python if..else

¿Puede ',' tener un alias de '..'?

¿Cómo puedo verificar si un volumen está montado donde se supone que debe estar usando Python?