utf8 unicodedecodeerror start invalid error 0xff 0xf1 0xbf 0xb0 0xa2 0x89 python python-3.x

python - start - UnicodeDecodeError: el códec ''utf-8'' no puede decodificar el byte



unicodedecodeerror: ''utf-8'' codec can''t decode byte 0xff in position 0: invalid start byte (7)

Como sugirió Mark Ransom, encontré la codificación correcta para ese problema. La codificación era "ISO-8859-1", por lo que reemplazar open("u.item", encoding="utf-8") con open(''u.item'', encoding = "ISO-8859-1") resolverá el problema.

Aquí está mi código,

for line in open(''u.item''): #read each line

cada vez que ejecuto este código, aparece el siguiente error:

UnicodeDecodeError: ''utf-8'' codec can''t decode byte 0xe9 in position 2892: invalid continuation byte

Traté de resolver esto y agregar un parámetro adicional en open (), el código se ve así;

for line in open(''u.item'', encoding=''utf-8''): #read each line

Pero nuevamente da el mismo error. ¡que debería hacer entonces! Por favor ayuda.


Intenta leer esto usando pandas

pd.read_csv(''u.item'', sep=''|'', names=m_cols , encoding=''latin-1'')


Si alguien está buscando esto, este es un ejemplo para convertir un archivo CSV en Python 3:

try: inputReader = csv.reader(open(argv[1], encoding=''ISO-8859-1''), delimiter='','',quotechar=''"'') except IOError: pass


Si está utilizando Python 2 la siguiente solución será la siguiente:

import io for line in io.open("u.item", encoding="ISO-8859-1"): # do something

Debido a que el parámetro de encoding no funciona con open() , obtendrá el siguiente error:

TypeError: ''encoding'' is an invalid keyword argument for this function


Su archivo en realidad no contiene datos codificados en utf-8, contiene alguna otra codificación. Averigüe qué es esa codificación y úsela en la llamada open .

En la codificación de Windows-1252, por ejemplo, el 0xe9 sería el carácter é .


También funcionó para mí, ISO 8859-1 va a ahorrar mucho, jajaja, principalmente si usa API de Reconocimiento de voz

Ejemplo:

file = open(''../Resources/'' + filename, ''r'', encoding="ISO-8859-1");


La más simple de todas las soluciones:

Usa Pandas para leer archivos, es muy simple:

import pandas as pd data = pd.read_csv(''file_name.csv'', encoding=''utf-8'')