[SpringBoot] 특정 URL만 다른 Encoding 방식 설정하기

오늘은 특정 URL로 서비스에 진입하였을 때 Encoding 방식을 다르게 가져가는 방법을 알아보려 한다.

타사 서비스랑 연동하다 보면 그쪽 연동 규격에 맞춰야 하는 케이스가 있는데 나와 같은 경우

타사의 API의 응답이 EUC-KR로 고정되어 Encoding되어 들어와 우리의 서비스의 UTF-8 양식에 맞지 않아

한글이 깨진 경우였으며 아래와 같은 방식으로 해결하였다.

기본 Encoding 방식이 UTF-8이라 하면 특정 URL로 진입하였을 때 EUC-KR로 Encoding 하는

Filter를 설정하여 처리하려고 한다.

Filter 설정

@Configuration
public class Encodingfilter {

    @Bean
    public FilterRegistrationBean encodingFilterBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter();
        filter.setForceEncoding(true);
        filter.setEncoding("EUC-KR");
        registrationBean.setFilter(filter);
        registrationBean.addUrlPatterns(특정 URL 매핑);
        return registrationBean;
    }
}

위와 같이 선언하여 주면 특정 URL로 들어왔을 때는 EUC-KR로 Encoding을 해주어

Encoding 양식이 맞지 않아 깨지던 한글도 정상적으로 표기되는 걸 볼 수 있다.

다른 글 읽어보기 ⬇️