У меня возникла такая проблема.
Я питон ещё только изучаю и вот решил для себя написать небольшую ЦМСку для сайта, всё вроде бы хорошо, но вот впал в ступор с кодировками.
Использую python 3.0.
Отправляю данные с русскими буквами через форму.
На входе примерно такой код.
import cgi
mPost = cgi.FieldStorage()
if 'code' in mPost:
print(mPost['code'].value)
Реально уже столько времени потратил, но никак не могу это победить.
Стоит Винда-Денвер.
Локаль cp1251.
Как я понимаю при запуске print() он пытается закодировать символы юникода в cp1251 и фик получается.
Я делаю вывод, что значит на входе русские буквы неправильно декодировались в юникод…
Я так думаю, что ошибка в том, что он пытается при чтении входящего потока декодировать его, как utf-8 исходя из значения sys.getdefaultencoding()?
Пробовал править, чтобы дефолтная локаль была utf-8. В итоге print() стал выдавать текст в кодировке utf-8 и при отправке уже ошибок не было. Правда браузеры в упор не понимали в какой кодировке страницы.
Кто-нибудь может прояснить картину? Как все честные люди решают этот вопрос?