Я использовал pymssql-1.0.2 и freetds-0.82.7 на Ubuntu-10.10. Также у меня есть сервер mssql2008 на windows-7. Я могу подключиться к mssql из ubuntu, используя pymssql и freetds. Но я не могу получить данные юникода из базы данных mssql. Сопоставление базы данных — 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 не может прочитать данные, которые выходят за пределы кодовой страницы.
Как получить данные Unicode, хранящиеся в базе данных mssql? Пожалуйста, дайте руку!
С уважением, Оргил.