・flaskとpsycopg2でポートフォリオを作成しています。
・クエリパラメータから取得した文字列が文字化けしてしまいます。
・下記URLから取得した値はDB内検索で用います
python
1curl -XGET "http://localhost:5000/question?keyword=ダミー" -H 'Content-type: application/json' 2 3 4keyword = request.args.get('keyword') 5print(keyword) #ãã¼ 6
エンコード等を試しましたがうまく行きませんでした。
エンコード自体はできるのですが、エンコード結果をDB検索に用いることができず、例えばutf-8にエンコードして検索を行うと
python
1keyword = request.args.get('keyword').encode('utf-8') 2print(keyword)#b'\xc3\xa3\xc2\x83\xc2\x80\xc3\xa3\xc2\x83\xc2\x9f\xc3\xa3\xc2\x83\xc2\xbc' 3 4cur.execute(f"SELECT user_name, user_image, question_detail, is_closed, questions.created_date \ 5 FROM questions \ 6 JOIN users ON users.id = questions.user_id \ 7 JOIN image AS user_image ON users.id = user_image.relation_id \ 8 WHERE question_detail\ 9 LIKE '%{keyword}%' ")
このようなエラーが発生してしまいます。
psycopg2.errors.SyntaxError: syntax error at or near "\" LINE 1: ...etail LIKE '%b'\xc3\xa3\x...
文字化けさせずにURL内の文字列をDB検索に利用する方法を教えてくださると幸いです。
優秀なエンジニアの皆々様
お力添えをお願い致します。
回答3件
あなたの回答
tips
プレビュー