UnicodeEncodeError al redirigir stdout [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Establecer la codificación correcta al canalizar stdout en Python 10 respuestasTengo un problema con respecto a Unicode en Python. Puedo imprimir bien la salida en un terminal normal, pero si redirijostdout
en otro lugar (o capturarlo con elsubprocess
módulo), obtengo unUnicodeEncodeError
:
$ cat example.py
print u'Example: \u00F1'
$ python example.py
Example: ñ
$ python example.py > /dev/null
Traceback (most recent call last):
File "example.py", line 1, in <module>
print u'Example: \u00F1'
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 9: ordinal not in range(128)
¿Por qué es esto? ¿Cómo puedo arreglarlo?