python:getfilesystemencoding()在shell和wsgi中返回不同的值

时间:2015-01-29 09:37:33

标签: python mod-wsgi wsgi

当我输入' sys.getfilesystemencoding()'在shell中,我得到了结果" utf-8"

>>> 
>>> import sys 
>>> sys.getfilesystemencoding()
'UTF-8'
>>> 

但是当我在WSGI脚本中运行时,我得到了结果" ANSI_X3.4-1968"

那为什么会有所不同?

1 个答案:

答案 0 :(得分:4)

这是由于脚本environment不同而发生的。

请注意在以下示例中更改LC_CTYPE时会发生什么:

└> LC_CTYPE=ANSI python -c 'import sys; print sys.getfilesystemencoding()'
ANSI_X3.4-1968

└> LC_CTYPE=en_US.UTF-8 python -c 'import sys; print sys.getfilesystemencoding()'
UTF-8

要解决此问题,请为您的wsgi脚本为en_US.UTF-8环境变量指定LC_CTYPE值。