python: getfilesystemencoding() returns shell 和 wsgi 中的不同值
python: getfilesystemencoding() returns different value in shell and wsgi
当我在 shell 中输入 'sys.getfilesystemencoding()' 时,我得到了结果 "utf-8"
>>>
>>> import sys
>>> sys.getfilesystemencoding()
'UTF-8'
>>>
但是当我在 WSGI 脚本中 运行 时,我得到了结果 "ANSI_X3.4-1968"
那为什么不一样呢?
这是由于不同的脚本 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
要解决此问题,请将 en_US.UTF-8
值分配给 wsgi 脚本的 LC_CTYPE
环境变量。
当我在 shell 中输入 'sys.getfilesystemencoding()' 时,我得到了结果 "utf-8"
>>>
>>> import sys
>>> sys.getfilesystemencoding()
'UTF-8'
>>>
但是当我在 WSGI 脚本中 运行 时,我得到了结果 "ANSI_X3.4-1968"
那为什么不一样呢?
这是由于不同的脚本 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
要解决此问题,请将 en_US.UTF-8
值分配给 wsgi 脚本的 LC_CTYPE
环境变量。