具有特殊字符的pyodbc

2024-04-25 20:32:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下sql

select * from table
where "column" = 'ĚČÍ'

当直接提交到数据库时(在我的例子中是Microsoft SQL Server 2016),它可以正常工作

如果我使用(python中)

import pyodbc

ex_str= """select * from table
         where "column" = (?)"""
str2insert= ('ĚČÍ')
 
conn = pyodbc.connect(cstring)
cur = conn.cursor()
cur.execute(ex_str,str2insert)
content = cur.fetchall()

虽然ĚÍ肯定是数据库列中的一个条目,但我没有得到任何结果

我补充说

conn.setencoding("utf-8")

使用拉丁utf-8等编码和解码STR2插入,并添加

cstring = cstring + ";convert_unicode=True"

但什么都没用。 pyodbc和特殊字符似乎存在问题。有人有主意吗


Tags: from数据库sqltablecolumnconnwhereselect