/ / 'utf8' codec no puede decodificar el byte 0xc3 mientras que decodifica ('utf-8') en python - python, encoding, utf-8

El códec 'utf8' no puede decodificar el byte 0xc3 mientras decodifica ('utf-8') en python - python, encoding, utf-8

Hoy fui golpeado con un error extraño en mi script:

"utf8" codec can"t decode byte 0xc3 in position 21: invalid continuation byte

Estoy leyendo datos de socket sock.recv y el resultado es buff.decode("utf-8") donde buff son los datos devueltos.

Pero hoy encontré más o menos "unicornio" donde unode los caracteres devueltos "▒" <- esto es lo que lanza decodificar utf-8 en excepción. ¿Hay algún proceso previo que eliminaría o reemplazaría a un personaje tan extraño?

Respuestas

5 para la respuesta № 1

Hay un segundo parámetro para .decode() llamado errors. Puedes configurarlo para "ignore" para ignorar todos los caracteres que no sean utf8, o configurarlo "replace" Para reemplazarlos con el signo de interrogación de diamante ( ).

buff.decode("utf-8", "ignore")