Artemios
Май 21, 2011 16:57:20
Приветствую!
Что-то возникла проблема с кодировкой.
Пишу маленький проектик на Python2.6 + Cheetah +CherryPy, простенькая БД на SQLite встроенной в Python. Пишу и отлаживаю в Eclipse+PyDev, везде кодировка UTF-8. Текст на кириллице есть и в *.py модулях, и в шаблонах на Cheetah, и в БД.
Из-под PyDev все замечательно работает, а вот при запуске из-под консоли - в браузер вылетает Traceback “ascii кодек траляля”, когда пытается взять строки с кириллицей из БД, при чем остальная кириллица, не из БД, проходит нормально.
Одинаково поведение (из PyDev работает, из консоли нет) и в ОС Linux, где вся локаль в utf-8, и в Windows-е.
o7412369815963
Май 21, 2011 23:38:12
> из PyDev работает, из консоли нет
падев свои настройки вкручивает, ошибка с кодировками все же есть.
Artemios
Май 22, 2011 10:06:07
А как-нибудь можно узнать, какие настройки добавляет PyDev?
Андрей Светлов
Май 22, 2011 11:44:28
Внимание, предсказываю: «простая» печать русских букв (print или sys.stdout.write) тоже не должна работать. На любой программе, и связь с БД тут не при чем.
Artemios
Май 22, 2011 12:28:05
Да оно понятно, что где-то что-то с настройками окружения, интересен вопрос: как pydev-овские настройки скопировать к себе?
А кстати, по поводу print-а, в linux-овой консоли, где локаль вся utf-8, селект и print из той же базы русский текст успешно печатают.
Traceback же возникает в каком-то из модулей Cheetah, сейчас не помню в каком, программа на рабочем компьютере.
Андрей Светлов
Май 22, 2011 12:31:17
Было бы полезно этот traceback увидеть. Копирование настроек без вникания в суть ошибки чревато неприятностями.
Artemios
Май 23, 2011 13:11:08
Проблема решилась.
Обновил Cheetah до последней версии - из-под PyDev все также замечательно работает, а из консоли вообще перестало запускаться, также ругалось на ascii кодек, но указывало уже на 0-й символ в файле шаблона. А по этому адресу услужливая Windows проставила маркеры юникода (шаблоны набрасывал толи в Notepad, толи в AkelPad, не помню).
Удалил маркеры - теперь всё работает “на ура” и из-под консоли, и из-под PyDev.