Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用烧瓶';s jsonify显示é;asé;_Python_Json_Python 3.x_Flask_Utf 8 - Fatal编程技术网

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')  # é

请帮帮我,我什么都做,但不工作