Следующий вопрос о русской кодировке, mssql и python

Следующий вопрос о русской кодировке, mssql и python.

У меня есть этот простой код:

import pymssql
import codecs
conn=pymssql.connect(host='localhost:1433', user='sa',  password='password', database='TvPgms')
cur = conn.cursor()
cur.execute('SELECT TOP 5 CAST( Name AS nvarchar(400) ), CONVERT(nvarchar(400), idProgram) FROM dbo.Programs')
p=cur.fetchone()
h=p[0]
d=codecs.lookup(h)
print h
conn.close()

Я получаю ошибку: Ошибка LookUp: Unnown Кодировка:??????????????????

Я не могу читать русские поля varchar из MSSQL. Но когда я просто печатаю строку в одном и том же коде, все в порядке, это печатает меня обычными русскими символами. Кто знает как?

Если я, правда, просто напечатать h insted из codecs.lookup, то я не получу никакой ошибки, но это напечатает меня?????????????????

1 ответ

Решение

codecs.lookup принимает кодирующее имя, а не какую-то случайную строку, и вам, вероятно, здесь все равно это не нужно. Я думаю, что в настоящее время вы не можете надежно печатать строки Unicode из Python в консоль Windows из-за глубоких технических проблем. Попробуйте записать в файл или используя WriteConsoleW функционировать напрямую (через ctypes) вместо

Другие вопросы по тегам