среда, 16 марта 2011 г.

Django + pyodbc + MS SQL + cp1251 русские буквы

+ нет прав настраивать БД.

Запросил помощи на softwaremaniacs.org, когда разберусь, ответ появится в этом посте. Но чем черт не шутит, может и тут мне кто подскажет?


Работаю с MSSQL, база (и данные в ней) в cp1251, использую django-pyodbc
Русский текст полученный из БД не отображается вообще...
Вот конфиг:
DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'www',
        'USER': 'smi',
        'PASSWORD': 'кэп',
        'HOST': '192.0.0.1',
        'PORT': '1433',
        'collation': 'Cyrillic_General_CI_AS',
    }
}
collation убирал и ставил другие, не влияет вообще... помогите может кто знает как быть?

Нагуглил такую же проблему — http://python.su/forum/viewtopic.php?id=10160, так и не ответил никто...

7 комментариев:

  1. попробуй добавить опций
    'unicode_results':True,
    'driver_needs_utf8':False

    ОтветитьУдалить
  2. Огромное спасибо Pavel! Опция 'unicode_results':True сработала :-)

    ОтветитьУдалить
  3. сам мучался долгое время пока не залез в файлик base.py pyodbc и не поразбирался кикие параметры он там считывает из файла настроек

    ОтветитьУдалить
  4. Знакомо, очень часто бывает так, что в документации к приложению нет и половины тех настроек и параметров, которые можно найти в исходнике) Только в этот раз я даже не решился туда лезть. Еще раз большое вам спасибо!

    ОтветитьУдалить
  5. decode('cp1251')
    Должно помочь
    Применяй к текстовым полям

    ОтветитьУдалить
  6. Этот комментарий был удален автором.

    ОтветитьУдалить