python django jsonresponse에서 한글 인코딩 문제 질문입니다

조회수 2081회

def vanalysis(request):
    device = Device.objects.all()
    locations_list = list()
    for d in device:
        try:
            location = d.dev_name.split(';')[2].split(' ')[0]
        except Exception as e:
            location = '데이터오류'
        locations_list.append(location)

    data = Counter(locations_list)
    return JsonResponse({'data':data}, content_type=u"application/json")

이렇게 해서 결과 갑을 웹에서 보면

{"data": {"\uc11c\ucd081\ub3d9": 208, "\uc11c\ucd082\ub3d9": 159, "\ubc18\ud3ec1\ub3d9": 188, "\ubc29\ubc30\ubcf8\ub3d9": 150, "\ubc29\ubc301\ub3d9": 177, "\ubc29\ubc302\ub3d9": 320, "\uc591\uc7ac2\ub3d9": 286, "\uc7a0\uc6d0\ub3d9": 220, "\ubc18\ud3ec4\ub3d9": 210, "\ubc29\ubc303\ub3d9": 208, "\ubc29\ubc304\ub3d9": 253, "\ub0b4\uace1\ub3d9": 166, "\uc11c\ucd083\ub3d9": 331, "\uc11c\ucd084\ub3d9": 163, "\ubc18\ud3ec2\ub3d9": 78, "\uc591\uc7ac1\ub3d9": 341, "\ubc18\ud3ec\ubcf8\ub3d9": 44, "\ubc18\ud3ec3\ub3d9": 17, "\ufffd\ufffd\ubc304\ub3d9": 1, "\ubc29\ubc302\ufffd\ufffd\ufffd": 1, "\uc2e0\uc6d0\ub3d9": 28, "\ub370\uc774\ud130\uc624\ub958": 10, "\uc6b0\uba74\ub3d9": 1, "\uc6b0\uba74\ub3d917(\uc591\uc7ac1\ub3d9)": 1}}

이렇게 나오네요...

원래는 키값이 대부분 한글인데요. 혹시 웹에서도 한글로 보이게 하려면 어떻게 해야할까요?

  • utf-8 로 디코딩하세요. 아마 제가 기억하기로는 처음에는 byte 코드로 보내는 걸로 알고 있습니다.\ dbwodlf3 2020.9.23 20:18
  • flask 나 django 의 view 쪽 코드를 봐야할 것 같은데요. nowp 2020.9.24 09:30
  • 해결했습니다.! 김재민 2020.9.24 11:04
  • JsonResponse({'data': data}, json_dumps_params={'ensure_ascii': False}, status=200) 이렇게 넘겨주니까 정상적으로 보이네요.. 김재민 2020.9.24 11:05

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)