viernes, 2 de diciembre de 2022

4 posibles soluciones en Python3 a: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 503: ordinal not in range(128)

Problema: 
 Al ejecutar un script en python se recibe un mensaje similar a: 

return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 503: ordinal not in range(128) 

Causa:
  Por defecto python intenta utilizar ASCII como encoding, en caso de que el archivo a leer, la variable a declarar tenga otro codec debe ser especificado, sin embargo, en líneas generales UTF-8 es capaz de solucionar la mayoría de las situaciones

Soluciones

1) Especifar el encoding al momento de leer un archivo:
 with open(os.path.expanduser(path), encoding='utf-8') as f:

2) Asignar una variable e indicar la forma de decodificarla:
s = s.decode('utf-8')

3) Declarar variables de entorno (Linux). Por ejemplo

 export LANG=en_US.UTF-8 

export LC_ALL=en_US.UTF-8 export 

export PYTHONIOENCODING=utf8

4) Indicar al comienzo del script el coding. Por ejemplo

#!/usr/bin/python
# coding: utf-8



Suerte, espero haya sido de tu ayuda.





No hay comentarios:

Publicar un comentario

¿Algo adicional que quieras mencionar? ¿Algun consejo?, ¿truco? Gracias!

Entrar a rommon en un Switch Cisco desde una laptop mac

Problema  Deseo entrar un rommon en un SW Cisco estando conectado vía consola. Los break sequence que intento ninguno sirve, incluso luego d...