2018/05/15 15:12

스프링프로젝트, Ajax에서 한글 깨짐 현상 Dev

얼마 전에 신입사원이 입사하면서, 업무 시스템에서 신규 담당자 추가 작업이 필요하게 되었다.


다만 늘 그렇듯이 귀찮은 작업은 하드코딩으로 넣어두었더니, 

신규 담당자가 발생할때마다 전체 jsp 파일에 일일이 이름을 새기는 작업을 해야만했다. 


내가 비석에 이름 새겨넣는 석공도 아니고... 


결국 귀찮음을 이겨내고 디비에 신규 가입자가 발생할때마다

모든 담당자 설정 박스에 동적으로 데이터를 가져오도록 수정을 했다.


<스크립트파일>

   $.ajax({

    url : "/ecommerce/weekreport/getUserList",

    type : "GET",

    cache : false,

    async : false,      

    success : function(data) {

     var obj = JSON.parse(data);

     $.each(obj,function(key,value){

      $("#userselect").append("<option value='" + value.user_name + "'> " + value.user_name + "</option>");     

     });

    },

    error : function(xhr, status, error) {

     alert(error);

    }

   });


<컨트롤러>

  @RequestMapping(value = "/weekreport/getUserList")

public @ResponseBody String getUserList(HttpSession session) {


    JSONArray array = new JSONArray(weekreportService.getUserList());

   String jsonString = array.toString();

   return jsonString;

}


콘솔창에 찍어보니 모든 값을 제대로 가져온다.


가져온 값을 이제 화면에서 뿌려주기만 하면 되는데.....


 


???..... 모든 담당자 이름이 ??? 으로 뜬다.


결론부터 말하자면, 


@RequestMapping(value = "/weekreport/getUserList", produces = "application/text; charset=utf8")


produces를 통해 명시적으로 문자셋 설정을 해두니 한글깨짐 현상이 발생하지 않는다.


구글 검색과정에서 보니, 생각보다 같은 오류로 당황하는 개발자들이 많은 것 같아 기록해 둔다.




덧글

댓글 입력 영역


skin by mater