Задать вопрос
@bellli

Python 3.x + pymssql как правильно работать с кириллицей?

Добрый день. В python новичок. Два дня гуглю этот вопрос безрезультатно.
Дело вот в чём: необходимо подключиться к бд sqlexpress2008. Выполнить запросс. Обработать результат. Все действия выполняются в Python 3.4 IDLE.
Что делаю:
....
cur=con.cursor(as_dict=True)
cur.execute('SELECT ID, Name FROM dbo.pList WHERE ID = 1;')
for row in cur:
	print("id=%d, name=%s" % (row['ID'], row['Name'])) # Результат id=1, name=Èâàíîâ	

cur.execute(b'SELECT ID, Name FROM dbo.pList WHERE ID = 1;'.decode('utf-8').encode('cp1251'))
for row in cur:
	print("id=%d, name=%s" % (row['ID'], row['Name'])) # Результат id=1, name=Èâàíîâ

Единственное что удалось.
>>> a
'Èâàíîâ'
>>> b=a.encode()
>>> c=b.decode('cp866')
>>> c
'├И├в├а├н├о├в'
>>>

Возможно кто то уже сталкивался с подобным? Сравнение в бд - Cyrillic_General_CI_AS
Возможно необходимо предоставить какую-либо инф?
  • Вопрос задан
  • 1906 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@bellli Автор вопроса
>>> a
'Èâàíîâ'
>>> b=a.encode('latin1')
>>> c=b.decode('cp1251')
>>> c
'Иванов'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lega
Так же можете попробовать pyodbc (py2, py3), несколько лет его использую, под linux работает стабильно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы