본문 바로가기
Server/Spring

Spring Boot Servlet Requset euc-kr 인코딩 문제

by min_gui 2024. 1. 10.

 

Client 에서 json 인코딩 형식을 euc-kr로 보낼때가 있는데, 그러면 spring boot 기본 캐릭터 셋 형식이 UTF-8이라 한글이 깨진다.

HttpServletRequest로 받아 아래와 같이 euc-kr 로 변경해주면 해결된다. xml, json 문서 형식도 파악 가능하다 .

 

PostMapping(value="/test")
public void insertLog(HttpServletRequest request) throws Exception {
    
    //post 로 받을때, inputStream 으로 받아야된다. 
    ServletInputStream inputStream = request.getInputStream();
    //Charset euc-kr 로 설정
    String messageBody = StreamUtils.copyToString(inputStream, Charset.forName("euc-kr"));
    //object mapper 로 @RequestBody 처럼 json을 객체로 변환.
    SampleVO sampleVO = objectMapper.readValue(messageBody, SampleVO.class);


    log.debug("sampleVO = {}", sampleVO);
    log.debug("messageBody = {}", messageBody);
    
}