Flask實(shí)現(xiàn)的接口響應(yīng)中存在中文時接口返回為unicode亂碼的解決方法
問題描述
當(dāng)flask實(shí)現(xiàn)的接口響應(yīng)中存在中文時,接口返回為unicode亂碼。

其實(shí)這個是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以下的版本確實(shí)是可行的,但是高版本就失靈了,這魔法師靈了。
還好我的開發(fā)環(huán)境Flask有多個版本;
稍微老點(diǎn)的: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 # 解決中文亂碼問題
重啟項(xiàng)目代碼。
這里說下為啥要關(guān)閉ascii編碼方式呢,那是因?yàn)镕lask初始化app時默認(rèn)是開啟的,所以咱們在自己做項(xiàng)目時,按需求將其開啟或關(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實(shí)現(xiàn)的接口響應(yīng)中存在中文時接口返回為unicode亂碼的解決方法的詳細(xì)內(nèi)容,更多關(guān)于新版Flask返回中文unicode亂碼解決的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Numpy對特征中的異常值進(jìn)行替換及條件替換方式
這篇文章主要介紹了使用Numpy對特征中的異常值進(jìn)行替換及條件替換方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python Flask利用SocketIO庫實(shí)現(xiàn)圖表的繪制
這篇文章主要為大家詳細(xì)介紹了Python Flask框架如何利用SocketIO庫實(shí)現(xiàn)圖表的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12
Python實(shí)現(xiàn)FTP弱口令掃描器的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)FTP弱口令掃描器的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
python實(shí)現(xiàn)zencart產(chǎn)品數(shù)據(jù)導(dǎo)入到magento(python導(dǎo)入數(shù)據(jù))
這篇文章主要介紹了python實(shí)現(xiàn)zencart產(chǎn)品數(shù)據(jù)導(dǎo)入到magento(python導(dǎo)入數(shù)據(jù)),需要的朋友可以參考下2014-04-04
Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作精確分詞
本文是Python機(jī)器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程. 本文主要學(xué)習(xí)NLP自然語言處理基本操作之如何精確分詞2021-09-09

