Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

553
Vistas
error UnicodeDecodeError: el códec 'utf-8' no puede decodificar el byte 0xff en la posición 0: byte de inicio no válido

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

Se produjo un error al compilar "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 <module> 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.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Python intenta convertir una matriz de bytes (un bytes que supone que es una cadena codificada en utf-8) en una cadena Unicode ( str ). Este proceso, por supuesto, es una decodificación 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 (a saber, este 0xff en la posición 0).

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

Desde el seguimiento de la pila, podemos suponer que la acción desencadenante 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 open() establece que el archivo se tratará como binario, por lo que el contents seguirá siendo bytes . Ningún intento de decodificación ocurrirá de esta manera.

over 4 years ago · Santiago Trujillo Denunciar

0

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

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

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

over 4 years ago · Santiago Trujillo Denunciar

0

Utilice el formato de codificación ISO-8859-1 para resolver el problema.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda