[ 작업 환경 ]

 

 

 

 

 [ 문제 상황 ]

한글 데이터가 깨짐(비정상) 상태로 출력됩니다.

 

 

 

 [ 원인 ]

기본적으로 기존 utf8 인코딩이 아닌, ascii 인코딩으로 출력되기 때문입니다.

 

 

 

 [ 해결 방법 1 ]

 

 

필자 프로젝트에서는 아래와 같이 app 선언 아래에

app.config['JSON_AS_ASCII'] = False

를 입력해주어, 'JSON_AS_ASCII' 설정을 False로 변경해주었습니다.

# vim app001/__init__.py

from flask import Flask

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False

from app001 import routes

 

 

 

 [ 해결 방법 2 ]

json.dumps 와 make_response 를 활용해 ensure_ascii=False 설정으로 json을 생성합니다.

# ...

import json
from flask import make_response

# ...

result = json.dumps(result, ensure_ascii=False)
res = make_response(result)
return res

이 경우 [ 해결 방법 1 ] 의 결과처럼 깔끔한 형태로 정렬되어 보이지 않아 가독성이 떨어집니다.

result = json.dumps(result, ensure_ascii=False, indent=4)
res = make_response(result)
return res

indent=4

옵션을 json.dumps에 추가해줄 경우 탭사이즈 4로 깔끔하게 인덴팅되어 출력되는 것으로 해결할 수 있습니다.

 

 

 

 

 

+ Recent posts