Message205654
> And yet, in Python 2, people could do that, and Python didn't care.
> *That's* the regression I'm worried about. If it hadn't round-tripped
> cleanly in Python 2, I wouldn't care here either.
$ python2.7 -c "print u'\u20ac'"
€
$ LANG=C python2.7 -c "print u'\u20ac'"
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u20ac' in position 0: ordinal not in range(128)
And even worse:
$ python2.7 -c "print u'\u20ac'" >/dev/null
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u20ac' in position 0: ordinal not in range(128)
What the wart!
Other program can produces wrong (or even absolutely senseless) output with C locale.
$ LANG=C ls
???????????? ???????????????? ???????????????????? ??????????
?????????? ?????????????? ?????????????? ????????????????????????
?????????? ???????? ???????????? ??????????????
?????????????? ?????????????????? ???????? ????????????????????
What is better, silently produce corrupted output or raise an exception? If first, then let just set the "replace" or "backslashreplace" error handler for sys.stdout by default. |
|
Date |
User |
Action |
Args |
2013-12-09 09:36:51 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, lemburg, loewis, terry.reedy, ncoghlan, pitrou, vstinner, larry, a.badger, r.david.murray, Sworddragon, bkabrda |
2013-12-09 09:36:51 | serhiy.storchaka | set | messageid: <1386581811.22.0.490923009542.issue19846@psf.upfronthosting.co.za> |
2013-12-09 09:36:51 | serhiy.storchaka | link | issue19846 messages |
2013-12-09 09:36:50 | serhiy.storchaka | create | |
|