Следующий вопрос о русской кодировке, 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
) вместо