print vs sys.stdout.write, and UnicodeError
Martin Marcher
martin at marcher.name
Thu Oct 25 15:06:22 EDT 2007
25 Oct 2007 17:37:01 GMT, Brent Lievers <3wbl at qlink.queensu.ca>:
> 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)
>>> sys.stdout.write(u'\u00e9\n'.encode("UTF-8"))
é
> 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?
you forgot to encode what you are going to "print" :)
--
http://noneisyours.marcher.name
http://feeds.feedburner.com/NoneIsYours
More information about the Python-list
mailing list