덤프 된 데이터가 표시됩니다. JSON_AS_ASCII
을 비활성화 했으므로 ASCII 호환 유니 코드 이스케이프가 아닌 두 개의 UTF-8 바이트가 생성됩니다. JSON은 사용자가 선택한 표현과 상관없이 여전히 UTF-8이지만 기본값을 고수하는 것이 일반적으로 안전합니다.
데이터를 보는 데 사용하는 것이면 바이트를 UTF-8이 아닌 Latin-1로 오인하는 것입니다. 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') # é
감사합니다. 그러나 jsonify를 사용하여 'é'를 인쇄하는 코드를 수정하는 방법은 아직 이해가되지 않습니다. –
수정할 것이 없습니다. 바이트를보고있는 모든 내용을 표시하기 위해 잘못된 인코딩을 선택하는 것이지만 JSON은 항상 UTF-8입니다. UTF-8을 선택하면 올바르게 표시됩니다. 데이터를로드하면 올바른 것입니다. – davidism
Chrome에서 @host.route ('/'로 정의 된 경로)로 이동하여 Chrome에서 바이트를보고 있습니다. –