【发布时间】:2020-06-25 07:40:15
【问题描述】:
在 DB 中有这样的值:C:\555\Новый текстовый документ.txt
在python瓶脚本中有一个语句:cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))
如果我按文件扩展名搜索或只是编号,则可以。但如果我用俄语字母搜索。它什么也没显示。
附:我在 ru_RU.UTF8 集合中创建数据库并在脚本中有conn.set_client_encoding('UTF8')。
我做错了什么?
谢谢!
更新 1: 这是一个代码。我还在Adminer、PyAdmin 和psql 中进行了测试。在他们中,这个查询是可以的。但不在代码中:(
@post('/search')
def search():
username = request.forms.get('user')
filename = request.forms.get('file')
time = request.forms.get('time')
server = request.forms.get('server')
if filename:
cursor.execute("""select * from main where filename ilike '%%' || %s || '%%' escape ''""", (filename,))
return template('index', cursor2=cursor)
cursor.close()
conn.close()
【问题讨论】:
-
您能说明如何设置传递到执行语句的
filename变量吗? -
我更新了帖子。可能是托管问题?我将 db 的托管更改为 ru_RU.UTF8。但没有机会:(
-
啊哈!你是对的!我写了一个打印(文件名)并看到了这个:“GET /pure-min.css HTTP/1.1”304 0 нов。但是如何解决它。准备并将其编码为UTF8?无论如何,谢谢!
标签: python postgresql centos psycopg2