文字化け周りで悩んでいます。
状況
DBにアクセスした結果ある条件を満たしたときエラーを返したいです。
以下のように実装しています。
python
1@app.route('/hoge/{fuga}', methods=['GET'], cors=True) 2def search_car(fuga): 3 4 ~ 中略 ~ 5 6 if json.dumps(result, ensure_ascii=False) == '[]': 7 8 return Response( 9 body={}, 10 headers={ 11 'Content-Type': 'application/json', 12 'Error-Message': '条件に当てはまる車両が存在しません。'}, 13 status_code=400 14 )
デプロイして実際にAPIを叩くと以下のように返ってきます。
< HTTP/2 400 < content-type: application/json < content-length: 2 < date: Fri, 10 Apr 2020 03:44:49 GMT < x-amzn-requestid: hogehoge < error-message: ?????????????????? < access-control-allow-origin: * < access-control-allow-headers: hogehoge
欲しい文字列が????????????????
となってしまいました。
試したこと
codecs
json.dumps
ascii
等を試しましたがうまく行きませんでした。
python
1'Error-Message': codecs.decode('条件に当てはまる車両が存在しません。', encodeing='shift_jis') # ?????????????? 2'Error-Message': json.dumps(['条件に当てはまる車両が存在しません。'], ensure_ascii=False)[1:-1] # ?????????????? 3'Error-Message': ascii('条件に当てはまる車両が存在しません。') # \u6761\u4ef6\u306b\u5f53\u3066...
なお、日本語を英語にすると('can not search car' など)、これはこのまま出てきました。
python
1'Error-Message': 'can not search car' # can not search car
どうしてもヘッダに含めて返したいのですが、
どなたかお知恵を貸していただけないでしょうか。
あなたの回答
tips
プレビュー