无法在Python / Django中执行包含非拉丁字符的查询

时间:2014-11-10 22:16:41

标签: python sql-server django

我尝试在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)

但它没有效果。

1 个答案:

答案 0 :(得分:1)

“FreeTDS为您处理Unicode”https://stackoverflow.com/a/964825/3033586

cursor.execute(u'SELECT * FROM sys_Атрибут'.encode('utf-8'))