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()

次のエラーが表示されます: LookUp Error : Unnown Encoding: ????? ?????? ?????????

MSSQL からロシア語の varchar フィールドを読み取ることができません。しかし、同じコードで文字列を印刷すると、すべて問題なく、通常のロシア語の文字が印刷されます。誰がどのように知っていますか?

codecs.lookup の insted を印刷するだけで、エラーは発生しませんが、表示されるのは ???????? です。?????????

4

1 に答える 1

2

codecs.lookupランダムな文字列ではなく、エンコーディング名を使用しますが、おそらくここでは必要ありません。現時点では、深刻な技術的問題により、Unicode 文字列を Python から Windows コンソールに確実に出力することはできないと思います。代わりに、ファイルに書き込むか、WriteConsoleW関数を直接 ( 経由で) 使用してみてください。ctypes

于 2010-07-08T16:20:42.297 に答える