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 № 1Hay 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")