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