본문 바로가기

Python

[Python] Flask Response 한글 깨짐 현상 해결

문제인식: Flask로 api를 서버에 켜서 여기에 request로 값을 요청하면 응답값이 한글인 경우 깨져서 나타나는 경우가 있다.
문제 해결: flask에서 사용하는 인코딩을 utf-8로 설정한다.

response = { 'sentence' : '\uc548\ub155\ud558\uc13\uc694'}

response가 위와 같이 한글이 깨지는 경우가 있다.

flask에서 사용하고 있는 인코딩이 utf-8이 아닌 ascii인 경우 발생한다.
따라서, flask를 호출할 때 ascii를 꺼주면 해결된다.

from flask import Flask
application = Flask(__name__)
application.config['JSON_AS_ASCII'] = Flase

그런데 flask 의 Response 모듈과 json.dump를 사용하는 경우에는 위 설정이 깨진 경우도 있다고 한다.
이 때, json.dumps에서 ascii 인코딩을 False한 후 encode를 utf-8로 변환하여 response를 넘겨주면 된다고 한다.

response = json.dumps(result)
Response(response, content_type = 'application/json: charset = utf-8')

response = json.dumps(response, ensure_ascii=False).encode('utf-8')
Response(response, content_type='application/json: charset=utf-8')

참고

 

python error 해결법: flask response 한글 깨짐 현상

python framework 중 하나인 flask 를 이용하여 값을 응답 하다보면 한글인 경우 아래와 같이 깨져서 나타나는 경우가 있다. { "sentence": "\uc548\ub155\ud558\uc138\uc694" } 이경우는 flask 에서 사용하고 있..

wotres.tistory.com