我在 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 数据?请伸出你的手!
问候, 奥吉尔