Имеется база 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)