[IronPython] Bug with string encoding while redirecting to a custom stream

2006-05-22 Thread Kristof Wagemans








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
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


[IronPython] Bug with string encoding while redirecting to a custom stream

2006-04-03 Thread Kristof Wagemans








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
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com