flask返回json或者中文字符串不要编码
在 Flask 中返回中文字符串时,如果希望浏览器直接显示中文(而非编码后的 Unicode 转义字符如 \uXXXX
),需确保以下两点:
-
正确设置 HTTP 响应的字符集(如
utf-8
)。 -
避免 Flask 默认的 JSON 序列化转义中文字符。
以下是具体实现方法:
方法 1:直接返回纯文本(非 JSON)
如果只是返回纯文本(如 text/plain
),可以通过设置响应头明确字符集:
from flask import Flask, Response app = Flask(__name__) @app.route("/chinese") def return_chinese(): text = "你好,这是一段中文!" # 直接返回文本,并设置 Content-Type 为 text/plain; charset=utf-8 return Response(text, content_type="text/plain; charset=utf-8")