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

Reply via email to