Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 22, 2013 06:01:49

cavinc
От:
Зарегистрирован: 2011-12-16
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

kinterbasdb и проблеммы с символами более u2014 (python 2.6)

Имеется база Firebird в win1251 кодировке и 1 диалекте
строка подключения выглядит следующим образом -

  conn=kib.connect(dsn=dbase,user=user,password=passwd,dialect=1,charset='WIN1251')

чтение и запись данных в базу не доставляет проблемм ровдо до того момента как пытаюсь прочитать строку в которой присутствует символ более u2014. Показывает ошибку следующего вида :
File "/usr/lib/pymodules/python2.6/kinterbasdb/typeconv_text_unicode.py", line 190, in unicode_conv_out
    return rawString.decode(pyEncodingName)
  File "/usr/lib/python2.6/encodings/cp1251.py", line 15, in decode
    return codecs.charmap_decode(input,errors,decoding_table)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 5: character maps to <undefined>
происходит это при попытке считать значение u'11901\u2015' из базы. Что означает ощибка я полностью понимаю но вот чего с етим делать пока не придумал (лезти и править пакеты питона как то не охота).
UP !
поглядел внимательно на то что генерирует программа из базы которой и нужно получить данные. в кодировке Win1251 получается значение x98 коего нет не только в таблице преобразования Python но и в наборе символов тоже данный код отсутствует (идет x97 и сразу x99)

Всем спасибо !
решение найдено



Отредактировано cavinc (Фев. 23, 2013 15:40:24)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version