Python 2.6 から SQL Server 2008 のフィールドを取得したいと考えています。これが私の freeTDS .conf ファイルです。
[ARGSERVER03]
host = 192.168.1.3
port = 1433
tds version = 7.0
コードは次のとおりです。
conn = pymssql.connect(host='192.168.1.3', user='****', password='****', database='TrafficMonitor', as_dict=True, charset='UTF-8')
i = 0
cur.execute('SELECT * FROM dbo.tblTrafficCounterData')
while i < 10:
car = cur.fetchone_asdict()
if car is None:
break
c = car['Class']
print c
i = i + 1
しかし、それは与えます:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
Unicode フィールドはペルシア語です。トレースバックは行用ですcar = cur.fetchone_asdict()
[編集]
SQL Server Management Studio のデータベース プロパティでデータベースの照合順序を確認しましたが、次のとおりです。
Arabic_CI_AS
しかし、それを charset で使用すると、次のようになります。
LookupError: unknown encoding: Arabic_CI_AS