当前位置: 首页 > news >正文

json中文编码问题

目录

  • json中文编码问题
    • flask的响应机制
    • jsonfy
    • json.dumps

json中文编码问题

在用flask写后端接口的时候,设置的接口返回格式是这样的:

from flask import jsonify

def generate_response(data=None, message=None, code=200):
    res_data = {
        "data": data if data is not None else [],
        "success": "true",
        "message": message
    }
    return jsonify(res_data)

在浏览器看到的结果中,中文变成了编码格式
在这里插入图片描述
而在postman中可以看到正常的数据
在这里插入图片描述
这是由于flask默认会将非ASCII字符转义为Unicode编码。中文字符在默认情况下会被转义成\uXXXX的形式

flask的响应机制

flask的响应机制主要是将视图函数的返回值转换为HTTP响应。当视图函数返回一个字符串时,flask会将其封装成一个Response对象,并设置默认的Content-Typetext/html; charset=utf-8;当返回字典或列表时,flask会使用jsonify函数将其转换为JSON响应。

jsonfy

jsonify 是flask提供的一个便捷函数,用于将 python 对象(如字典、列表)转换为JSON响应。它会自动创建一个Response对象,默认设置Content-Typeapplication/json
在这里插入图片描述

json.dumps

在flask里,jsonify函数其实是基于python的json.dumps来实现的。json.dumps默认会把非 ASCII 字符转义成 unicode 编码形式。

可以通过设置ensure_ascii参数为False来避免这种转义,并将 json.dumps 的结果包装为 Response 对象,设置响应头。

def generate_response(data=None, message=None, code=200):
    res_data = {
        "data": data if data is not None else [],
        "success": "true",
        "message": message
    }
    return Response(
        json.dumps(res_data, ensure_ascii=False),
        content_type='application/json; charset=utf-8',
        status=code
    )

在这里插入图片描述

相关文章:

  • 01LVGL图形界面库
  • Tauri + Vite + SvelteKit + TypeScript 跨平台开发全流程指南(Linux)
  • FANformer:融合傅里叶分析网络的大语言模型基础架构
  • 【C语言】memset(含常见用途、注意事项)
  • AWS Bedrock 正式接入 DeepSeek-R1 模型:安全托管的生成式 AI 解决方案
  • 2025年【A特种设备相关管理】免费试题及A特种设备相关管理模拟考试题库
  • 哪些业务场景更适合用MongoDB?何时比MySQL/PostgreSQL好用?
  • JavaScript性能优化
  • HTML基础
  • 深度学习实验
  • upload-labs-master通关攻略(1~4)
  • Linux内核如何和设备树协同工作的?
  • Oracle中Unique(id)和id int unique的区别
  • Redis常用数据结构及命令详解:从基础到进阶
  • Qt Creator插件系统详解及插件开发实战
  • 【后端】【ubuntu】 ubuntu目录权限查看的几种方法
  • 《旅游与摄影》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 【脚本】Linux一键扩大虚拟内存的大小
  • 多光谱相机数据采集过程中常见仪器
  • 基于FPGA的图像退化算法verilog实现,分别实现横向和纵向运动模糊,包括tb和MATLAB辅助验证
  • 工程院院士葛世荣获聘任为江西理工大学校长
  • 长江画派创始人之一、美术家鲁慕迅逝世,享年98岁
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 顾家家居:拟定增募资近20亿元,用于家居产品生产线的改造和扩建等
  • 《2025城市青年旅行消费报告》发布,解码青年出行特征
  • 光大华夏:近代中国私立大学遥不可及的梦想