로엘
74
2019-06-21 21:15:25
1
173

ajax로 json형식을 받을 때 한글이 물음표로 나와요...


ajax를 사용해 컨트롤러로부터 데이터를 json형식의 String으로 받아오려 합니다.

서버(tomact console)에서 데이터를 찍어보면 정상적으로 한글이 나오는데,
뷰단에서 찍어보면 한글이 전부 물음표로 나옵니다.
검색을 통해서 해결방법을 찾아봤는데...해결이 안돼서 질문올립니다.

컨트롤러
@RequestMapping(value = "/selectroom.do", produces="application/json; charset=utf8")
public @ResponseBody String selectroom(MeetingRoomVO vo){


List<MeetingRoomVO> meetingroom = meetingRoomService.getReserveInfo(vo);

Gson gson = new Gson();
System.out.println(gson.toJson(meetingroom));
return gson.toJson(meetingroom);

}
web.xml 설정
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang='en'>
ajax 요청
$.ajax({
url: "/selectroom.do",
data: "room_num=" + room_num,
datatype: "json",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (data) {
list = JSON.parse(data);
0
0
  • 답변 1

  • John Suhr
    773
    2019-06-21 21:39:05 작성 2019-06-21 21:42:59 수정됨
    @RequestMapping(
        value = "/selectroom.do",
        produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public List<MeetingRoomVO> selectroom(MeetingRoomVO vo){
        return  meetingRoomService.getReserveInfo(vo);
    }

    json변환은 메시지 컨버터에게 맡기는 것이 좋습니다. Gson을 직접 다루면 ISO-8859-1로 인코딩할거에요.(아마도...)

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.