python – Pymssql,如何使用它从MSSQL2008读取unicode数据
作者:互联网
我在ubuntu-10.10上使用了pymssql-1.0.2和freetds-0.82.7.
另外,我在windows-7上有一个mssql2008服务器.
我可以使用pymssql和freetds从ubuntu连接mssql.
但是我无法从mssql数据库中获取unicode数据.数据库排序规则是Cyrillic_General_CI_AS.
我的freetds.conf文件如下所示:
[mssql2008]
host=10.0.0.34
port=1433
tds version=7.0
我的代码看起来像这样:
conn = pymssql.connect(host=10.0.0.34\mssql2008, user=***, password=***, database=eoffice, as_dict=true, charset='iso-8859-1')
crms = conn.cursor()
crms.execute('SELECT cc_Name FROM tblHR_CodeClass')
for row in crms.fetchall():
raise u"Succeeded! Test data: " + row['cc_Name']
break
预期结果是:“Өмнөговьаймаг”
实际结果是:“ªìíºãîâààéìàã”
当我使用’UTF-8’字符集时,fetchall()调用抛出一个错误意味着utf8无法读取超出代码页范围的数据.
如何获取存储在mssql数据库中的unicode数据?
请伸手!
问候,
Orgil
解决方法:
它真的是Unicode数据吗?即,是cc_Name列varchar还是nvarchar?这听起来像是varchar – 在这种情况下,尝试使用cp1251或windows-1251作为charset而不是iso-8859-1.
标签:python,sql-server,unicode,freetds,pymssql 来源: https://codeday.me/bug/20190710/1420496.html