Невозможно отправить Unicode на SQL Server с помощью pymssql
У меня проблемы с отправкой юникода на SQL Server через pymssql:
In [1]: import pymssql
conn = pymssql.connect(host='hostname', user='me', password='password', database='db')
cursor = conn.cursor()
In [2]: s = u'Monsieur le Curé of the «Notre-Dame-de-Grâce» neighborhood'
In [3]: s
Out [3]: u'Monsieur le Cur\xe9 of the \xabNotre-Dame-de-Gr\xe2ce\xbb neighborhood'
In [4]: cursor.execute("INSERT INTO MyTable VALUES(%s)", s.encode('utf-8'))
cursor.execute("INSERT INTO MyTable VALUES(" + s.encode('utf-8') + "')")
conn.commit()
Оба оператора execute выдают одинаковый искаженный текст на стороне SQL Server:
'Monsieur le Curé of the «Notre-Dame-de-Grâce» neighborhood'
Может быть, что-то не так с тем, как я кодирую, или с моим синтаксисом. Кто-то предложил хранимую процедуру, но я надеюсь, что не нужно идти по этому пути.
Этот похоже, очень похожая проблема, без реального ответа.