Mark Dickinson <dicki...@gmail.com> added the comment:

I don't think this is a Python bug;  it has to do with the stdout 
encoding.  When connected to a terminal, sys.stdout.encoding is 
(probably, on Ubuntu) UTF-8, but when you're using this as a cgi script 
it's likely to be defaulting to ascii instead.  Not surprisingly, Python 
won't let you send non-ASCII characters to a stream whose encoding is 
'ascii'.

A workaround is to use sys.stdout.buffer.write (which writes bytes, not 
text), and to manually encode your unicode output in whatever encoding 
you want ('utf-8', I'm assuming):

>>> sys.stdout.buffer.write('中文\n'.encode('utf8'))
中文
7

----------
nosy: +marketdickinson
resolution:  -> invalid
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue6852>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to