我尝试在Python / Django中执行查询,但最终我以ProgrammingError
结束。我的脚本看起来像这样:
#--coding: utf-8
...
import pyodbc
...
def testquery(request):
cnx = pyodbc.connect("DRIVER=FreeTDS;SERVER=192.168.0.1;PORT=1433;DATABASE=mydatabase;UID=sa;PWD=password;TDS_Version=7.0;ClientCharset=UTF8;")
cursor = cnx.cursor()
cursor.execute("SELECT * FROM sys_Атрибут")
...
如您所见,表的名称包含非拉丁字符。如果我改为查询另一个名为拉丁语的表,那就没关系。
我也试过这个:
cursor.execute("SELECT * FROM ?",tablename)
而且:
cursor.execute("SELECT * FROM %s" % tablename)
但它没有效果。
答案 0 :(得分:1)
“FreeTDS为您处理Unicode”https://stackoverflow.com/a/964825/3033586
cursor.execute(u'SELECT * FROM sys_Атрибут'.encode('utf-8'))