91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flask接口返回的內容中出現中文亂碼如何解決

發布時間:2021-03-09 16:42:00 來源:億速云 閱讀:365 作者:Leah 欄目:開發技術

flask接口返回的內容中出現中文亂碼如何解決?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

寫一個簡單的例子程序:

# coding:utf-8
import flask
from flask import json, jsonify, request, render_template

app = flask.Flask(__name__)

@app.route("/api", methods=["GET", "POST"])
def api():
 if request.method == 'GET':
  return jsonify({"login status": "成功1"})
 elif request.method == "POST":
  data = request.get_data()
  data = json.loads(data)
  if data["name"] == "dom":
   return jsonify({"login": "成功2"})
  else:
   return jsonify({"login": "fail"})

if __name__ == "__main__":
 app.run(host='127.0.0.1', port='8080')

運行后訪問網頁,內容中的中文顯示亂碼

解決方式:

給app配置app.config[‘JSON_AS_ASCII'] = False,即:

if __name__ == "__main__":
 app.run(host='127.0.0.1', port='8080')

變為:

if __name__ == "__main__":
 app.config['JSON_AS_ASCII'] = False
 app.run(host='127.0.0.1', port='8080')

補充知識:Flask中 request.files.get('file') 后的文件對象在讀取時(中文)亂碼

一、問題引出

我們通常需要接收前端發送過來的文件,而在Flask中通常采取file_obj = request.files.get(‘file') 的方式獲取文件對象,按照Flask官方文檔的介紹,返回值 file_obj 是一個文件對象,但是我們平常在使用時通常是在open() 函數中指定打開方式的,可是這里并不知道這個文件對象中的數據是何種編碼方式,因此就會出現中文亂碼的問題。如下所示:當上傳的文件內容中包含中文時就會出現亂碼:

file_obj = request.files.get('file')
file_content = file_obj.read()
print('答案內容為:', file_content)

二、解決過程探索

通過Flask的官方文檔及源碼得知:

request.files 包含了所有上傳文件的MultiDict對象。文件中的每個鍵都是來自 "的名稱。文件中的每個值都是一個Werkzeug FileStorage對象。參考:Flask API

而類 FileStorage 是被這樣描述的:FileStorage類是傳入文件的一個簡單包裝。請求對象使用它來表示上傳的文件。并且 FileStorage 提供了一些方法,最長用的就是如下幾個:參考:Werkzeug DataStructures

filename ??The filename of the file on the client.
name ??The name of the form field.
save ??(dst, buffer_size=16384)Save the file to a destination path or file object. If the destination is a file object you have to close it yourself after the call. The buffer size is the number of bytes held in memory during the copy process. It defaults to 16KB. 等等

但是并沒有找到Flask在得到這個文件對象時的編碼方式。

三、解決辦法

先從文件對象中將內容讀出,然后再按照我們想要的格式解碼(通常 utf-8)。

file_obj = request.files.get('file')
file_content = file_obj.read()
file_content = file_content.decode("utf-8")
print('答案內容為:', file_content)

關于flask接口返回的內容中出現中文亂碼如何解決問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

颍上县| 集安市| 平江县| 襄樊市| 枝江市| 西林县| 南皮县| 无极县| 沭阳县| 霞浦县| 蛟河市| 三门峡市| 宜宾市| 清水县| 义马市| 郓城县| 蒙阴县| 昌黎县| 成都市| 随州市| 龙井市| 朔州市| 中方县| 德清县| 横山县| 宁安市| 泽普县| 阳泉市| 高安市| 华阴市| 兰坪| 张家界市| 霸州市| 顺昌县| 巨野县| 富蕴县| 保山市| 古交市| 靖州| 泽普县| 南昌市|