[Python-Dev] Logging, Unicode and sockets (original) (raw)

MRAB python at mrabarnett.plus.com
Thu Oct 8 17:57:35 CEST 2009


Vinay Sajip wrote:

Thanks to

http://bugs.python.org/issue7077 I've noticed that the socket-based logging handlers - SocketHandler, DatagramHandler and SysLogHandler - aren't Unicode-aware and can break in the presence of Unicode messages. I'd like to fix this by giving these handlers an optional (encoding=None) parameter in their init, and then using this to encode on output. If no encoding is specified, is it best to use locale.getpreferredencoding(), sys.getdefaultencoding(), sys.getfilesystemencoding(), 'utf-8' or something else? On my system:

sys.getdefaultencoding() 'ascii' sys.getfilesystemencoding() 'mbcs' locale.getpreferredencoding() 'cp1252' which suggests to me that the locale.getpreferredencoding() should be the default. However, as I'm not a Unicode maven, any suggestions would be welcome. Well, encodings can vary from machine to machine, and if the encoding doesn't cover all the Unicode codepoints then you could get an encoding exception. For these reasons I'd vote for UTF-8.



More information about the Python-Dev mailing list