Unicode, stdout, and stderr
Frank Millman
frank at chagford.com
Tue Jul 22 03:41:38 EDT 2014
"Peter Otten" <__peter__ at web.de> wrote in message
news:lql3am$2q7$1 at ger.gmane.org...
> Frank Millman wrote:
>
>> Hi all
>>
>> This is not important, but I would appreciate it if someone could explain
>> the following, run from cmd.exe on Windows Server 2003 -
>>
>> C:\>python
>> Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32
>> bit (In
>> tel)] on win32
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> x = '\u2119'
>>>>> x # this uses stderr
>> '\u2119'
>
> No, both print to stdout, but just
>
>>>> x
>
> is passed to the display hook of the interactive interpreter. This applies
> repr() and then tries to print the result. If this fails it makes another
> effort, roughly (the actual code is written in C)
>
> sys.stdout.buffer.write(repr(x).encode(
> sys.stdout.encoding, "backslashreplace"))
>
>
Thanks, Peter. Very interesting.
Out of interest, does the same thing happen when writing to sys.stderr?
Frank
More information about the Python-list
mailing list