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 <[email protected]>
<http://bugs.python.org/issue20686>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com