programing

Spring Boot에서 Character Encoding Filter를 설정하는 방법

megabox 2023. 3. 5. 09:41
반응형

Spring Boot에서 Character Encoding Filter를 설정하는 방법

Spring Boot 학습 중 부호화 문제가 발생했습니다.Spring 3.x와 같은 Character Encoding Filter를 다음과 같이 추가합니다.

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Spring Boot 1.4.2에서 Character Encoding Filter를 등록하는 것은 Spring 자체 인스턴스를 비활성화 시에만 동작합니다.spring.http.encoding.enabled=falseapplication.properties로 설정합니다.

단, application.properties에 다음 설정을 추가하면 필터 인스턴스화 없이 이 문제를 해결할 수 있습니다.

# Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly.
spring.http.encoding.charset=UTF-8
# Enable http encoding support.
spring.http.encoding.enabled=true
# Force the encoding to the configured charset on HTTP requests and responses.
spring.http.encoding.force=true

출처: 부록 A. 공통 응용 프로그램 속성

위의 코멘트에 제시된 Application.java 클래스의 코드 예:

@Bean
public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setForceEncoding(true);
    characterEncodingFilter.setEncoding("UTF-8");
    registrationBean.setFilter(characterEncodingFilter);
    return registrationBean;
}

나도 더 좋아application.properties배열.그렇지만spring.http.encoding는 새로운 스프링 부트버전(> 2.3)에서 감산되었습니다.새로운 응용 프로그램입니다.설정은 다음과 같습니다.

server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true

application.properties 파일에 다음 속성을 입력할 필요가 없다고 생각합니다.

spring.carset.charset=UTF-8

spring.disc.enabled=true

spring.2011.2011.208.208.208.force=true

대신 어플리케이션에서 pom.xml에 접속하여 다음 항목이 있는 경우 봄이면 됩니다.

소유물

언급URL : https://stackoverflow.com/questions/24054648/how-to-configure-characterencodingfilter-in-springboot

반응형