Situación:
Al ejecutar un script en python3 se recibe un error similar a:
UnicodeEncodeError: 'ascii' codec can't encode character '\xe1' in position 26: ordinal not in range(128)
Solución:
El problema viene dado (tal como lo explica el mensaje) por manejo de strings y unicode, muy seguramente el código contiene algún tipo de carácteres en
español, portugués, árabe u otro idioma no cubierto por ASCII
Si lees en Internet hay DECENAS de maneras de solucionar esto, yo solo voy a mencionar una que funciona y es MUY sencilla.
Si te encuentras en Linux o MAC es tan sencillo como colocar esto antes de ejecutar tu script (dentro de bash):
export PYTHONIOENCODING=utf8
Lo que se esta haciendo es declarar la variable de entorno PYTHONIOENCODING a utf8, python3 al ser ejecutado utilizará esta variable como encoding y tu problema será resuelto.
Claro, pudieses colocar dicha variable al entrar a tu sesión, o dentro de un script en bash que posteriormente llame a tu .py, etc, etc.
Suerte, espero haya sido útil.
No hay comentarios:
Publicar un comentario
¿Algo adicional que quieras mencionar? ¿Algun consejo?, ¿truco? Gracias!