Python 使用烧瓶';s jsonify显示é;asé;
Python 使用烧瓶';s jsonify显示é;asé;,python,json,python-3.x,flask,utf-8,Python,Json,Python 3.x,Flask,Utf 8,jsonify('e')不会打印我期望的内容。我看到的不是é,而是à app = Flask(__name__) app.config['JSON_AS_ASCII'] = False @app.route('/') def test(): return jsonify('é') 脚本的编码是UTF-8。UTF-8 JSON编码应该由JSON\u激活,因为ASCII=False您正在查看转储数据的表示。由于您已将JSON禁用为ASCII,因此将获得两个UTF-8字节,而不是ASCII
jsonify('e')
不会打印我期望的内容。我看到的不是é
,而是Ã
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
@app.route('/')
def test():
return jsonify('é')
脚本的编码是UTF-8。UTF-8 JSON编码应该由
JSON\u激活,因为ASCII=False
您正在查看转储数据的表示。由于您已将JSON禁用为ASCII,因此将获得两个UTF-8字节,而不是ASCII兼容的Unicode转义。JSON仍然是UTF-8,不管您选择哪种表示形式,但通常使用默认值更安全
无论您使用什么来查看数据,都会将字节误解为拉丁语-1,而不是UTF-8。告诉你正在查看的任何数据,它是UTF-8,它看起来都是正确的。从JSON加载数据,您将看到它仍然是正确的
from flask import Flask, jsonify, json
app = Flask('example')
app.config['JSON_AS_ASCII'] = True # default
with app.app_context():
print(jsonify('é').data) # b'"\\u00e9"\n', Unicode escape
app.config['JSON_AS_ASCII'] = False
with app.app_context():
print(jsonify('é').data) # b'"\xc3\xa9"\n', UTF-8 bytes
# you're viewing the bytes as Latin-1
print(b'\xc3\xa9'.decode('latin1')) # é
# but it's UTF-8
print(b'\xc3\xa9'.decode('utf8')) # é
# JSON is always UTF-8
print(json.loads(b'"\\u00e9"\n') # é
print(json.loads(b'"\xc3\xa9"\n') # é
请帮帮我,我什么都做,但不工作