0

下一个关于俄罗斯编码、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()

我收到错误:查找错误:未知编码:????? ?????????

我不能从 MSSQL 中提取俄罗斯 varchar 字段。但是当我只是在相同的代码中打印字符串时一切正常,它会打印我正常的俄语字符。谁知道怎么做?

如果我只是打印 h insted of codecs.lookup 而不是我得到任何错误,但它会打印我???????? ??????

4

1 回答 1

2

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

于 2010-07-08T16:20:42.297 回答