在编写Python 3.1 CGI脚本时,我遇到了可怕的UnicodeDecodeErrors.但是,在命令行上运行脚本时,一切都正常.
似乎open()
和print()
使用返回值locale.getpreferredencoding()
来知道默认情况下使用什么编码.在命令行上运行时,该值应为"UTF-8".但当通过浏览器运行脚本时,编码会神秘地被重新定义为"ANSI_X3".4-1968",这似乎只是普通ASCII的一个花哨名称.
我现在需要知道如何让cgi脚本在所有情况下都以"utf-8"作为默认编码运行.我的设置是在Debian Linux上的Python 3.1.3和Apache2.系统范围的语言环境是en_GB.utf-8.