关于俄语编码,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错误:未知编码:????? ?????? ???????
我无法从MSSQL中挖掘俄罗斯varchar filds。但是,当我只是在相同的代码中打印字符串一切都好,它打印我正常的俄罗斯字符。 谁知道怎么做?
如果我只是修改了打印出来的密码,而不是我没有错误,但它打印出来了???????? ?????????
答案 0 :(得分:2)
codecs.lookup
采用编码名称,而不是一些随机字符串,无论如何你可能不需要它。我认为目前由于深层技术问题,您无法可靠地将Unicode字符串从Python打印到Windows控制台。尝试直接写入文件或使用WriteConsoleW
功能(通过ctypes
)。