error UnicodeDecodeError: el codec ‘utf-8’ no puede decodificar el byte 0xff en la posición 0: el byte de inicio no es válido

https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools

Se produjo un error al comstackr “process.py” en el sitio anterior.

python tools/process.py --input_dir data -- operation resize --outp ut_dir data2/resize data/0.jpg -> data2/resize/0.png 

Rastreo (llamadas recientes más última):

 File "tools/process.py", line 235, in  main() File "tools/process.py", line 167, in main src = load(src_path) File "tools/process.py", line 113, in load contents = open(path).read() File"/home/user/anaconda3/envs/tensorflow_2/lib/python3.5/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 

¿Cuál es la causa del error? La versión de Python es 3.5.2.

Python intenta convertir una matriz de bytes (un bytes que asume que es una cadena codificada en utf-8) en una cadena Unicode ( str ). Este proceso, por supuesto, es una deencoding de acuerdo con las reglas de utf-8. Cuando intenta esto, encuentra una secuencia de bytes que no está permitida en cadenas codificadas en utf-8 (es decir, este 0xff en la posición 0).

Como no proporcionó ningún código que pudiéramos ver, solo pudimos adivinar el rest.

Del seguimiento de la stack, podemos suponer que la acción de activación fue la lectura de un archivo ( contents = open(path).read() ). Propongo recodificar esto de una manera como esta:

 with open(path, 'rb') as f: contents = f.read() 

Que b en el especificador de modo en el open() indica que el archivo se tratará como binario, por lo que el contents seguirá siendo un bytes . Ningún bash de deencoding sucederá de esta manera.

Use esta solución para eliminar (ignorar) los caracteres y devolver la cadena sin ellos. Solo use esto si su necesidad es despojarlos, no convertirlos.

 with open(path, encoding="utf8", errors='ignore') as f: 

Usando errors='ignore' Solo perderás algunos caracteres. pero si no te importan, ya que parecen ser caracteres adicionales que se originan en el formato y la progtwigción incorrectos de los clientes que se conectan a mi servidor de socket. Entonces es una solución directa fácil. referencia

Tenía un problema similar a esto, terminé usando UTF-16 para decodificar. mi codigo esta abajo

 with open(path_to_file,'rb') as f: contents = f.read() contents = contents.rstrip("\n").decode("utf-16") contents = contents.split("\r\n") 

esto tomaría el contenido del archivo como una importación, pero devolvería el código en formato UTF. desde allí se decodificaría y separaría por líneas.

Me encontré con este hilo cuando sufrí el mismo error. Después de investigar un poco, puedo confirmarlo. Este es un error que ocurre cuando intentas decodificar un archivo UTF-16 con UTF-8.

Con UTF-16, el primer carácter (2 bytes en UTF-16) es una marca de orden de bytes (BOM) , que se utiliza como sugerencia de deencoding y no aparece como un carácter en la cadena decodificada. Esto significa que el primer byte será FE o FF y el segundo, el otro.

Muy editado después de que descubrí la verdadera respuesta.

Usar unicamente

 base64.b64decode(a) 

en lugar de

 base64.b64decode(a).decode('utf-8') 

Lea ( r ) el archivo CSV details.csv y codifique con utf8 . Si se produce un error, ignórelo. Esto se hace simplemente con el siguiente código.

 with open('details.csv', 'r',encoding="utf8", errors='ignore') as csvDataFile: csvReader = csv.DictReader(csvDataFile) 

Compruebe la ruta del archivo a leer. Mi código siguió emitiéndome errores hasta que cambié el nombre de la ruta al directorio de trabajo actual. El error fue:

 newchars, decodedbytes = self.decode(data, self.errors) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 

Si estás en un mac, comprueba si hay un archivo oculto, .DS_Store. Después de eliminar el archivo mi progtwig funcionó.

HitHere, debe cargar el archivo “GoogleNews-vectors-negative300.bin.gz” al principio y luego extraerlo con este comando en Ubuntu: gunzip -k GoogleNews-vectors-negative300.bin.gz. [nunca se recomienda la extracción manual]. en segundo lugar, debes aplicar estos comandos en pyrhon 3:

import gensim model = gensim.models.Word2Vec.load_word2vec_format('./model/GoogleNews-vectors-negative300.bin', binary=True) . Espero que sea de utilidad.

Tengo un problema similar. Intento ejecutar un ejemplo en tensorflow / models / object_detection y encontré el mismo mensaje. Intenta cambiar Python3 a Python2

Si es posible, abra el archivo en un editor de texto e intente cambiar la encoding a UTF-8. De lo contrario, hacerlo programáticamente a nivel del sistema operativo.