Daniel U. Thibault added the comment:

"The default encoding is normally set to ASCII [...]. When a Unicode string is 
printed, written to a file, or converted with str(), conversion takes place 
using this default encoding."

>>> u"äöü"
u'\xe4\xf6\xfc'
   Printing a Unicode string uses ASCII encoding: false (the characters are not 
converted to their ASCII equivalents) (compare with str(), below)

>>> str(u"äöü")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: 
ordinal not in range(128)
   Converting a Unicode string with str() uses ASCII encoding: true (if print 
(see above) behaved like str(), you'd get an error too)

>>> f = open('workfile', 'w')
>>> f.write('This is a «test»\n')
>>> f.close()
   Writing a Unicode string to a file uses ASCII encoding: false (examination 
of the file reveals UTF-8 characters (hex dump: 54 68 69 73 20 69 73 20 61 20 
C2 AB 74 65 73 74 C2 BB 0A))

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20686>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to