♣ Tech & Biz Salon/Tech

@ResponseBody 한글깨짐 처리

TasteGod 2012. 9. 5. 14:02

전에 이래 저래 해봐도 실패했고, 어제 또 시도했으나 여전히 실패였다.

Http Response Browser 라는 놈으로 확인해보면 Header 값은 여전히 ISO 8859-1.


그래서 오늘 다시 ResponseBody 한글깨짐 으로 구글링해보니 해결한 사례가 보였따.

http://tedwon.com/pages/viewpage.action?pageId=34603028

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/http/ResponseEntity.html

참고? 아니... 베낀 내 소스는 아래와 같다.

jqgrid 연동테스트를 위해 json 값 하드코딩한 것을 뱉어주는 소스다.

package orgos.pss.backend.cmCode;


import java.util.List;


import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


import org.springframework.http.*;


import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.SessionAttributes;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.bind.support.SessionStatus;

......

@Controller
public class CmCodeController {

    ...............

    @RequestMapping(value="/backend/cmCode/jqgridb.json")
    public ResponseEntity<String> selectListJqgridB(HttpServletRequest request, HttpServletResponse response, ModelMap model)
            throws Exception {
   
    // Belows does not work. Response Headers is still "Content-Type: text/html;charset=UTF-8"
    // response.setCharacterEncoding("utf-8");
    // response.setContentType("text/html; charset=UTF-8");
    // response.addHeader("Content-Type", "text/html; charset=UTF-8");
   
        String jsonString3 = "{\"page\": \"1\", \"total\": 3, \"records\": \"2\",\"rows\":[";
        jsonString3 = jsonString3 + "{ \"codeKind\" : \"INST_KIND\", \"codeKindNm\" : \"inst kind\", \"testXXX\" : \"this is test\", \"codeLength\" : \"1\", \"memo\" : \"한글MEMO\"}";
        jsonString3 = jsonString3 + ",{ \"codeKind\" : \"AUTH_KIND\", \"codeKindNm\" : \"auth kind\", \"testXXX\" : \"this is test2\", \"codeLength\" : \"2\", \"memo\" : \"MEMO2\"}";
        jsonString3 = jsonString3 + "]}";

//     return jsonString3;        
        HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.add("Content-Type", "text/html; charset=UTF-8");
        return new ResponseEntity<String>(jsonString3, responseHeaders, HttpStatus.CREATED);
    }

}