Flask实现的接口响应中存在中文时接口返回为unicode乱码的解决方法

 更新时间:2023年11月15日 09:57:55   作者:阿速之吉  
本文给大家分享了新版Flask实现的接口响应中存在中文时接口返回为unicode乱码的解决方法,文中通过代码示例和图文介绍的非常详细,如果有遇到相同问题的朋友,可以参考阅读本文

问题描述

当flask实现的接口响应中存在中文时,接口返回为unicode乱码。

其实这个是ASCII码。

使用在线转换工具转换看看效果。

问题排查

网上找了很多资料都是说,在创建flask app时,关闭ascii编码方式

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False  # 解决中文乱码问题

这个针对flask 2.2.5以下的版本确实是可行的,但是高版本就失灵了,这魔法师灵了。

还好我的开发环境Flask有多个版本;

稍微老点的:Flask 2.2.5

最新的版本:Flask 2.3.3

同一份代码,两个版本一个生效一个不生效,那基本确定是版本的原因了。

于是就去翻看了官方的版本更新日志,终于找到了原来在版本 2.3.0时已经弃JSON_AS_ASCII这个属性了。那么新版要怎么处理呢,这里就不多赘述,先直接上解决办法,想深入研究的同学,可以翻到后面继续看。

问题解决

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  # 解决中文乱码问题

重启项目代码。

这里说下为啥要关闭ascii编码方式呢,那是因为Flask初始化app时默认是开启的,所以咱们在自己做项目时,按需求将其开启或关闭。

此时再看看接口返回,已经正常返回中文。

Flask版本的坑

flask更新日志:

Changes — Flask Documentation (2.3.x)

从上图就可看出,2.3.0版本已经将JSON_AS_ASCII属性移除了。

那新版本的要怎么设置呢,下面这篇文章已经指出。

API — Flask Documentation (2.3.x)

英文不好的同学可以看翻译

以上就是新版Flask实现的接口响应中存在中文时接口返回为unicode乱码的解决方法的详细内容,更多关于新版Flask返回中文unicode乱码解决的资料请关注脚本之家其它相关文章!

相关文章

  • python动态网站爬虫实战(requests+xpath+demjson+redis)

    python动态网站爬虫实战(requests+xpath+demjson+redis)

    本文主要介绍了python动态网站爬虫实战(requests+xpath+demjson+redis),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Python基础教程之while循环用法讲解

    Python基础教程之while循环用法讲解

    Python中除了for循环之外还有一个while循环,下面这篇文章主要给大家介绍了关于Python基础教程之while循环用法讲解的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python实现对象转换为xml的方法示例

    Python实现对象转换为xml的方法示例

    这篇文章主要介绍了Python实现对象转换为xml的方法,结合实例形式分析了Python对象属性、节点的操作及与xml相互转换的相关实现技巧,需要的朋友可以参考下
    2017-06-06
  • 通过实例简单了解Python sys.argv[]使用方法

    通过实例简单了解Python sys.argv[]使用方法

    这篇文章主要介绍了通过实例简单了解Python sys.argv[]使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • python防止随意修改类属性的实现方法

    python防止随意修改类属性的实现方法

    这篇文章主要介绍了python防止随意修改类属性的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python中使用中文的方法

    Python中使用中文的方法

    python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识。当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了。
    2011-02-02
  • 利用Python制作本地Excel的查询与生成的程序问题

    利用Python制作本地Excel的查询与生成的程序问题

    最近遇到这样一个项目需求制作一个程序有一个简单的查询入口实现Excel的查询与生成,今天教大家利用Python制作本地Excel的查询与生成的程序,感兴趣的朋友跟随小编一起看看吧
    2022-06-06
  • python mock测试的示例

    python mock测试的示例

    这篇文章主要介绍了python mock测试的示例,帮助大家利用python进行模拟接口测试,感兴趣的朋友可以了解下
    2020-10-10
  • 封装Detours用于Python中x64函数hook详解

    封装Detours用于Python中x64函数hook详解

    Detours是微软发布的一个API hook框架,同时支持x86和x64,看文档说也支持ARM和ARM64的Windows,这篇文章主要介绍了封装Detours用于Python中x64函数hook,需要的朋友可以参考下
    2023-12-12
  • Python实用小知识之对象间的比较

    Python实用小知识之对象间的比较

    == 和 is 是 Python 中对象比较常用的两种方式,简单来说,'==' 操作符比较对象之间的值是否相等,下面这篇文章主要给大家介绍了关于Python实用小知识之对象间比较的相关资料,需要的朋友可以参考下
    2021-10-10

最新评论