При написании Python 3.1 CGI-скрипта я столкнулся с ужасными UnicodeDecodeErrors. Однако при запуске скрипта из командной строки все работает.
Похоже, что open ()
и print ()
используют возвращаемое значение locale.getpreferredencoding ()
, чтобы узнать, какую кодировку использовать по умолчанию. При запуске в командной строке это значение - «UTF-8», как и должно быть. Но при запуске скрипта в браузере кодировка таинственным образом переопределяется на «ANSI_X3.4-1968», что кажется просто причудливым названием для простого ASCII.
Теперь мне нужно знать, как заставить cgi-скрипт работать с 'utf-8' в качестве кодировки по умолчанию во всех случаях. Моя установка - Python 3.1.3 и Apache2 в Debian Linux. Общесистемный языковой стандарт - en_GB.utf-8.