Python under PowerShell adds characters

Chris Angelico rosuav at
Wed Mar 29 15:29:07 EDT 2017

On Thu, Mar 30, 2017 at 6:13 AM, Marko Rauhamaa <marko at> wrote:
> eryk sun <eryksun at>:
>> PowerShell is far more invasive. Instead of giving the child process a
>> handle for the file, it gives it a handle for a *pipe*. PowerShell
>> reads from the pipe, and like an annoying busybody that no asked for,
>> decodes the output as text,
> You mean, a bit like Python3 does?

If you open a file in Python 3, you can choose whether to open it as
text or binary. When you print text to stdout, well, it's text, so of
course it has to be encoded appropriately; if you're doing something
unusual (like a CGI script creating an image file), you can override
the default and change stdout to be binary. But normally, the standard
streams are connected ultimately to a human, so they're text.

The problem is that PS is decoding and then re-encoding instead of
simply telling the process what encoding to use. That's just wrong.


More information about the Python-list mailing list