[Python-Dev] Fix IO Encoding issue for embedded Python under Windows (original) (raw)

Bastien Montagne montagne29 at wanadoo.fr
Thu Oct 10 11:54:06 CEST 2013


Hi Py Devs,

As this is my first mail here, first a short presentation: my name is Bastien Montagne (aka mont29), I live in France, and I’ve been using Python for a fair amount of years now in various projects, amongst which Blender 3D software. I’m also a Blender dev (C & Py) since a few years.

Now to the topic, to summarize http://bugs.python.org/issue16129 , an application dynamically linking against Python under MS-Windows has no way to control Python's environment, and hence cannot set PYTHONIOENCODING to get another encoding than default Windows' console (which is usually 8bit, like cp437). This is really annoying under Blender, as we use utf-8 strings, users having e.g. "special" chars in their file paths keep getting python errors instead of nice prints…

Following Nick Coghlan’s suggestions, I made a patch which solves that issue by adding Py_SetStandardStreamEncoding() to the API, which allows embedding code to directly specify standard IO encodings. So now I’m waiting for reviews & comments from py devs, in the hope that this can make it into python code before 3.4 feature freeze (patch: http://bugs.python.org/file31985/setstdio.diff ).

Best regards, Bastien



More information about the Python-Dev mailing list