关于俄语编码,mssql和python的下一个问题

时间:2010-07-08 16:01:15

标签: python windows unicode console pymssql

关于俄语编码,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。但是,当我只是在相同的代码中打印字符串一切都好,它打印我正常的俄罗斯字符。 谁知道怎么做?

如果我只是修改了打印出来的密码,而不是我没有错误,但它打印出来了???????? ?????????

1 个答案:

答案 0 :(得分:2)

codecs.lookup采用编码名称,而不是一些随机字符串,无论如何你可能不需要它。我认为目前由于深层技术问题,您无法可靠地将Unicode字符串从Python打印到Windows控制台。尝试直接写入文件或使用WriteConsoleW功能(通过ctypes)。