|
I needed to change the default ASCII encoding to Unicode because it removed
all accented characters when sending data to my custom stream. While trying to
get this to work I found the following problem. Use PythonEngine.SetStdout(), PythonEngine.SetStderr(), PythonEngine.SetStdin
() to set your own custom stream. There is a PythonFile wrapper created around
the stream with the default encoding specified. Then change the default
encoding with sys.setdefaultencoding('utf_16_le'). The encoding of the
PythonFile remains the same and it keeps sending data in the old format. I
don't know how difficult it is to change this behavior and even if it's
possible to change the encoding dynamically. An easy workaround for me is to change the default encoding first and
then set the new streams. I'm only using sys.setdefaultencoding('utf_16_le') to
specify the default encoding at startup of the PythonEngine. The setting that I
want to change is inaccessible: DefaultEncoding is an internal value in SystemState.
Maybe it would be a good idea to add this to the Options so that it's possible
to directly start the PythonEngine with the desired encoding. ----- Something else: it would be nice if the __doc__ of enum's returned all
the names of the constants instead of 'no documentation available'. |
_______________________________________________ users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
