Что именно Вы имеете ввиду
1 ...при преобразовании скриптом питона русские буквы отображаются нормально...
о каком преоразовании и на каком этапе идëт речь? Что именно за скрипт имеется ввиду в этой фразе?
Вы можете гарантировать, что добавляете строки именно в кодировке utf-8?
Можете ли гарантировать, что нужно добавлять данные именно в этой кодировке? Далее, рассуждая просто (и без шаманского бубна и астрологии): если Вы просматриваете во всех случаях одной программой, а результаты различны, то ОЧЕВИДНО, что добавление происходит в РАЗНЫХ кодировках.
Поэтому следует поставить элементарную серию экпериментов по добавлению строчек в различной кодировке:
Допустим, что вы сами в своëм текстовом редакторе работатете с кодировкой koi8-r. Тогда Ваш скрипт ОБЯЗАН начинаться следующими строками
1 #!/usr/local/bin/python
2 # -*- coding: koi8-r -*-
Естественно что путь к самому интерпретатору может отличаться, а вторая строка именно такая.
Далее, вы можете написать простенькую фукцию
1 def dec(i_str):
2 return unicode( i_str, 'koi8-r').encode('utf-8')
3 #return unicode( i_str, 'koi8-r').encode('cp866')
4 #return unicode( i_str, 'koi8-r').encode('cp1251')
5 #return unicode( i_str, 'koi8-r').encode('utf-16')
6 #return str ## оставляем строку без изменений
Раскомметируйте последовательно одну за другой строчки и добавляйте в базу. Далее смотрите на результат. Естественно добавляете теперь уже декодированную строку dec('ваша строка не слишком коротка').