Error Handling
python error 해결법: flask response 한글 깨짐 현상
고수트
2022. 3. 1. 20:39
반응형
python framework 중 하나인 flask 를 이용하여 값을 응답 하다보면
한글인 경우 아래와 같이 깨져서 나타나는 경우가 있다.
{
"sentence": "\uc548\ub155\ud558\uc138\uc694"
}
이경우는 flask 에서 사용하고 있는 인코딩이 utf8 이 아닌 ascii 라 발생한다.
해결법은 간단하게 아래와 같이 flask 를 호출한 부분에서 ascii 를 꺼주면 된다.
from flask import Flask
app = Flask(__name__)
# 아래 추가
app.config['JSON_AS_ASCII'] = False
그런데 flask 의 Response 모듈과 json.dump 를 사용하는 경우에는 위의 설정이 깨어지는 경우도 있다.
res = json.domps(result)
Response(res, content_type='application/json; charset=utf-8')
이와 같은 경우에는 json.dump 에서 ascii 인코딩을 False 후 encode 를 utf8 로 변환하여 response 를 넘겨주면 된다.
아래와 같다.
res = json.dumps(res, ensure_ascii=False).encode('utf8')
Response(res, content_type='application/json; charset=utf-8')
반응형