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!