Hi, Alexander Belopolsky wrote: > There is currently a unit test in the trunk that fails in verbose mode: > > $ ./python.exe Lib/test/test_doctest.py -v > ... > UnicodeEncodeError: 'ascii' codec can't encode characters in position > 338-339: ordinal not in range(128) > > Apparently, the problem is that stdout cannot encode non-ascii characters: > >>>> sys.stdout.write(u'f\xf6\xf6') > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > UnicodeEncodeError: 'ascii' codec can't encode characters in position > 1-2: ordinal not in range(128) > > which is strange because > >>>> sys.stdout.encoding > 'UTF-8' > > and print has no problem with the same string: >>>> print u'f\xf6\xf6' > föö > > > Where does 'ascii' codec come from? It's sys.getdefaultencoding default value. sys.stdout.write() expects a bytes string. What you see here is the coercion of the unicode to a string. -- Amaury Forgeot d'Arc
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4