Some HAT...

= Анабар.ru => Python-форумы => Язык программирования Python => сообщение 822
| Вход | Регистрация
нет
фото
Автор:  Anabar
Дата:  3-Apr-2006 15:40 (gmt = -3.0)

Встречный вопрос и пр.

Что именно Вы имеете ввиду

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('ваша строка не слишком коротка').



все сообщения ветви:

Недостаточно прав для написания ответа
Время генерации страницы в секундах: 0.086