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
1 个回答
2
这真的是Unicode数据吗?也就是说,cc_Name这一列是varchar类型还是nvarchar类型?听起来像是varchar类型——如果是这样的话,可以试试用cp1251或者windows-1251作为字符集,而不是iso-8859-1。