Уведомления

Группа в Telegram: @pythonsu

#1 Май 21, 2011 16:57:20

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

PyDev, sqlite: кодировка

Приветствую!
Что-то возникла проблема с кодировкой.
Пишу маленький проектик на Python2.6 + Cheetah +CherryPy, простенькая БД на SQLite встроенной в Python. Пишу и отлаживаю в Eclipse+PyDev, везде кодировка UTF-8. Текст на кириллице есть и в *.py модулях, и в шаблонах на Cheetah, и в БД.
Из-под PyDev все замечательно работает, а вот при запуске из-под консоли - в браузер вылетает Traceback “ascii кодек траляля”, когда пытается взять строки с кириллицей из БД, при чем остальная кириллица, не из БД, проходит нормально.
Одинаково поведение (из PyDev работает, из консоли нет) и в ОС Linux, где вся локаль в utf-8, и в Windows-е.



Офлайн

#2 Май 21, 2011 23:38:12

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

PyDev, sqlite: кодировка

> из PyDev работает, из консоли нет
падев свои настройки вкручивает, ошибка с кодировками все же есть.

Офлайн

#3 Май 22, 2011 10:06:07

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

PyDev, sqlite: кодировка

А как-нибудь можно узнать, какие настройки добавляет PyDev?



Офлайн

#4 Май 22, 2011 11:44:28

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

PyDev, sqlite: кодировка

Внимание, предсказываю: «простая» печать русских букв (print или sys.stdout.write) тоже не должна работать. На любой программе, и связь с БД тут не при чем.



Офлайн

#5 Май 22, 2011 12:28:05

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

PyDev, sqlite: кодировка

Да оно понятно, что где-то что-то с настройками окружения, интересен вопрос: как pydev-овские настройки скопировать к себе?
А кстати, по поводу print-а, в linux-овой консоли, где локаль вся utf-8, селект и print из той же базы русский текст успешно печатают.
Traceback же возникает в каком-то из модулей Cheetah, сейчас не помню в каком, программа на рабочем компьютере.



Офлайн

#6 Май 22, 2011 12:31:17

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

PyDev, sqlite: кодировка

Было бы полезно этот traceback увидеть. Копирование настроек без вникания в суть ошибки чревато неприятностями.



Офлайн

#7 Май 23, 2011 13:11:08

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

PyDev, sqlite: кодировка

Проблема решилась.
Обновил Cheetah до последней версии - из-под PyDev все также замечательно работает, а из консоли вообще перестало запускаться, также ругалось на ascii кодек, но указывало уже на 0-й символ в файле шаблона. А по этому адресу услужливая Windows проставила маркеры юникода (шаблоны набрасывал толи в Notepad, толи в AkelPad, не помню).
Удалил маркеры - теперь всё работает “на ура” и из-под консоли, и из-под PyDev.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version