garch
Авг. 23, 2013 15:36:26
Добрый день уважаемые друзья и коллеги. Хочу в очередной раз попросить у Вас помощи, совета. Разрабатываю клиент для работы с БД (Postgresql) на PyQT4. Все вроде ничего но вот как дело дошло до вывода данных из базы в приложение, начались проблемы с кодировкой. БД UTF-8, кодировка Python выбран тоже в UTF-8, разработку осуществляю на Win XP. Данные вывожу в QTableWidget. И получается следующее. В заголовке таблицы русские буквы 100% -я ошибка: UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position 2610: character maps to <undefined>/ Если просто вставляю в таблицу данные, выводит какой-то мусор .Что только не пробовал…. Идеи закончились …. Может кто сталкивался с такой вот штукой, подскажите. Спасибо.
funnyman
Авг. 24, 2013 09:56:10
может перед записью в бд из виджета использовать .encode('utf-8'), и возможно в самом редакторе кода, кодировка другая стоит?
lorien
Авг. 24, 2013 21:10:22
Перед тем как пихать данные в QT-объекты, проверить, что данные корректные (в консольку вывести например), далее попробовать два варианта: пихать utf-8 и пихать unicode, возможно, ещё можно как-то заворачивать в QT-строковые типы. Я не знаю точно, не работал с QT.
garch
Авг. 27, 2013 11:14:26
Спасибо всем кто ответил! Попробовал все предложенные варианты, и остановился на следующем…
# -* coding: cp1251-*- и кодировка используемая в файле программы тоже cp1251. До передачи данных в базу еще не дошел, но из базы которая находится в кодировке UTF-8 данные выгружаются нормально(без кракозябр).