Flask實現(xiàn)的接口響應(yīng)中存在中文時接口返回為unicode亂碼的解決方法
問題描述
當flask實現(xiàn)的接口響應(yīng)中存在中文時,接口返回為unicode亂碼。
其實這個是ASCII碼。
使用在線轉(zhuǎn)換工具轉(zhuǎn)換看看效果。
問題排查
網(wǎng)上找了很多資料都是說,在創(chuàng)建flask app時,關(guān)閉ascii編碼方式
app = Flask(__name__) app.config['JSON_AS_ASCII'] = False # 解決中文亂碼問題
這個針對flask 2.2.5以下的版本確實是可行的,但是高版本就失靈了,這魔法師靈了。
還好我的開發(fā)環(huán)境Flask有多個版本;
稍微老點的:Flask 2.2.5
最新的版本:Flask 2.3.3
同一份代碼,兩個版本一個生效一個不生效,那基本確定是版本的原因了。
于是就去翻看了官方的版本更新日志,終于找到了原來在版本 2.3.0時已經(jīng)棄JSON_AS_ASCII這個屬性了。那么新版要怎么處理呢,這里就不多贅述,先直接上解決辦法,想深入研究的同學(xué),可以翻到后面繼續(xù)看。
問題解決
flask 2.3.0以上
app = Flask(__name__) app.json.ensure_ascii = False # 解決中文亂碼問題
flask 2.2.5以下
app = Flask(__name__) app.config['JSON_AS_ASCII'] = False # 解決中文亂碼問題
重啟項目代碼。
這里說下為啥要關(guān)閉ascii編碼方式呢,那是因為Flask初始化app時默認是開啟的,所以咱們在自己做項目時,按需求將其開啟或關(guān)閉。
此時再看看接口返回,已經(jīng)正常返回中文。
Flask版本的坑
flask更新日志:
Changes — Flask Documentation (2.3.x)
從上圖就可看出,2.3.0版本已經(jīng)將JSON_AS_ASCII屬性移除了。
那新版本的要怎么設(shè)置呢,下面這篇文章已經(jīng)指出。
API — Flask Documentation (2.3.x)
英文不好的同學(xué)可以看翻譯
以上就是新版Flask實現(xiàn)的接口響應(yīng)中存在中文時接口返回為unicode亂碼的解決方法的詳細內(nèi)容,更多關(guān)于新版Flask返回中文unicode亂碼解決的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?pass函數(shù)使用及其應(yīng)用的詳解
Python中,pass是一種空語句,即不做任何事情,只起到占位符的作用,本文主要介紹了Python?pass函數(shù)使用及其應(yīng)用的詳解,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Python將字符串常量轉(zhuǎn)化為變量方法總結(jié)
在本篇內(nèi)容里我們給大家整理了一篇關(guān)于Python將字符串常量轉(zhuǎn)化為變量方法的知識點總結(jié),有需要的朋友們學(xué)習(xí)下。2019-03-03Python人工智能實戰(zhàn)之以圖搜圖的實現(xiàn)
這篇文章主要為大家詳細介紹了如何基于vgg網(wǎng)絡(luò)和Keras深度學(xué)習(xí)框架實現(xiàn)以圖搜圖功能。文中的示例代碼講解詳細,感興趣的小伙伴可以學(xué)習(xí)一下2022-05-05Python連接到PostgreSQL數(shù)據(jù)庫的方法詳解
顧名思義,PostgreSQL?是一款為高效管理數(shù)據(jù)庫系統(tǒng)而創(chuàng)建的?SQL?系統(tǒng)軟件,這篇文章主要為大家詳細介紹了創(chuàng)建與?PostgreSQL?上的數(shù)據(jù)庫的連接的過程,需要的小伙伴可以了解下2023-10-10