Tengo un problema con Unicode en Python. Puedo imprimir la multa de salida en un terminal regular, pero si vuelvo a dirigir stdout
en otra parte (o captura con el módulo subprocess
), puedo obtener una UnicodeEncodeError
:UnicodeEncodeError al redireccionar stdout
$ 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?
http://stackoverflow.com/questions/492483/setting-the-correct-encoding-when-piping-stdout-in-python es esencialmente la misma pregunta, las respuestas resolvieron el problema que estaba teniendo (con suerte). . – dbr