2015-09-11 7 views
-1

I соединение с сервером Mssql на python 2.7 по pymssql. Строка соединения является:python pymssql at windows encode

mssql+pymssql://user:[email protected]:1433/DB 

И Collation сервера является Cyrillic_General_CI_AS. Когда я пытаюсь выбрать из таблицы с колонке varchat это вернуть строку:

u'ÎÎÎ "ÒÎÐÏÅÄÀ"' 

Я попытался преобразовать его:

"ÎÎÎ "ÒÎÐÏÅÄÀ".decode('866') 

И получить выход:

├О├О├О "├Т├О├Р├П├Е├Д├А" 

Но правильно Строка в базе данных:

ООО "ТОРПЕДА" 

Кажется, что каждый второй симбол является правильным. Как получить все строки varchar2 при правильном кодировании? Спасибо

+0

Что касается вашей среды отображения? вы должны использовать ОДНУЮ кодировку везде или иметь соответствующую логику перевода на границах. –

+0

Я попробую показать его по фляге на странице html. Выберите верните мне неправильную строку unicode, как показано в примере с первой строкой. Я нашел пример, поскольку я могу изменить кодировку в строке соединения: mssql + pymssql: // user: pass @ server: 1433/DB: charset = utf8. Но он возвращает тот же неправильный юникод. –

ответ

0

Просто найти ответ после того, как я сделал вывесить вопрос:

u'ÎÎÎ "ÒÎÐÏÅÄÀ"'.encode('latin1').decode('1251') 

Может быть есть лучшее решение, но через несколько дней я ищу did't найдено.