[Python-de] filesystemencoding

"Martin v. Löwis" martin at v.loewis.de
Don Apr 6 09:04:31 CEST 2006


Jens Diemer wrote:
> Sieht also gut aus... Nun hab ich es mal in meiner WebApp eingebaut und 
> siehe da, es sind ganz andere Angaben:
> 
> """
> sys.stdin.encoding: None
> sys.stdout.encoding: None
> sys.stderr.encoding: None
> sys.getdefaultencoding(): ascii
> sys.getfilesystemencoding(): ANSI_X3.4-1968
> locale.getpreferredencoding(): ANSI_X3.4-1968
> """

Offenbar läuft Apache mit LANG=C. Es gibt zwei Möglichkeiten:

1. Du änderst die locale, in der Apache läuft, z.B. indem Du
   in /etc/init.d/apache2 den Text

   ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"

   durch

   ENV="env -i LANG=de_DE.UTF-8 PATH=/usr/local/bin:/usr/bin:/bin"

   ersetzt (besser würde man ENV in /etc/default/apache2 setzen)

2. Du änderst LANG nur für das CGI-Skript, etwa mittels SetEnv:

   http://httpd.apache.org/docs/2.0/mod/mod_env.html#passenv

Ciao,
Martin