Dear All, The solution / explanation follows.
Thanks to Graham Dumpleton, the author of mod_wsgi (the WSGI module for Apache2) the source of the problem could be traced back to variables in Apache2. Below are the details reproduced from https://groups.google.com/forum/#!topic/modwsgi/4wdfCOnMUkU Now, everything is indeed UTF-8 ! Thanks again to each and everyone. Best regards, René Solution ------------ There is a file /etc/apache2/envvars referred to by /etc/apache2/apache2.conf. In that file, I found the following lines: ## The locale used by some modules like mod_dav export LANG=C ## Uncomment the following line to use the system default locale instead: #. /etc/default/locale As I don't need mod_dav, neither is it compiled with Apache2 ($apache2ctl -l), neither is it loaded with Apache2 ($apache2ctl -M), I commented / uncommented the 2 lines so that it now looks like: #export LANG=C . /etc/default/locale export LANG After a stop/start of Apache2, everything works fine and when I put the code: from locale import getpreferredencoding prefcoding = getpreferredencoding() from os import environ lang = environ["LANG"] g = open('envresults', 'a') g.write('LANG: ' + lang + '\n') g.write('PrefCod: ' + prefcoding + '\n') in my WSGI application, it gives me the same as the interpreter: rse@Alibaba:~/test$ cat envresults LANG: en_US.UTF-8 PrefCod: UTF-8 rse@Alibaba:~/test$ -*- The End -*- -- https://mail.python.org/mailman/listinfo/python-list