print vs sys.stdout.write, and UnicodeError

Brent Lievers 3wbl at qlink.queensu.ca
Thu Oct 25 13:37:01 EDT 2007


Greetings,

I have observed the following (python 2.5.1):

>>> import sys
>>> print sys.stdout.encoding
UTF-8
>>> print(u'\u00e9')
é
>>> sys.stdout.write(u'\u00e9\n')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in 
position 0: ordinal not in range(128)

Is this correct?  My understanding is that print ultimately calls 
sys.stdout.write anyway, so I'm confused as to why the Unicode error 
occurs in the second case.  Can someone explain?

Thanks,

Brent



More information about the Python-list mailing list