외부 모듈을 적용하는 작업을 하던 중 통신값에 한글깨짐이 발생했다 !! 

내 프로젝트는 UTF-8이고 연결하는 모듈의 인코딩은 EUC-KR로 설정되어있었다.. ; 

어노테이션으로 가능한지 보려고 Controller 에서 인코딩을 설정해 실행해봤다.

@PostMapping(value="/test/result", produces="text/plain;charset=euc-kr")

이렇게 해주니 postman을 이용한 테스트에선 한글이 잘 들어오는데

API와 연동하는 부분에선 계속해서 한글이 깨져 들어온다.. ㅠ.ㅠ 

 

결국 ~ 인코딩 필터를 설정하기로 했다!

나의 프로젝트는 UTF-8로 설정되어 있기에 전부 바꾸는건 리스크가 있어 

특정 URL만 EUC-KR로 변경하는 필터를 달았다~ 

 

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyEncodingFilter extends CharacterEncodingFilter {
	@Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
			throws ServletException, IOException {
		AntPathMatcher matcher = new AntPathMatcher();
		String reqUri = request.getRequestURI();
		
		if (matcher.match("/test/**", reqUri)) {
			request.setCharacterEncoding("euc-kr");
			
			filterChain.doFilter(request, response);
		} else {
			super.doFilterInternal(request, response, filterChain);
		}
	}
}

 

설정하고 다시 시도~ 

 

DB에 깨져서 들어오던 한글이 이제 잘 들어온다 !! ㅎㅎ 

+ Recent posts