nav*_*vee 26 encoding spring-boot
我在学习Spring Boot时遇到了一些编码问题; 我想添加像Spring 3.x这样的CharacterEncodingFilter.像这样:
<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>
Run Code Online (Sandbox Code Playgroud)
Fri*_*rdt 59
由于春季启动1.4.2注册自己CharacterEncodingFilter将工作只当您通过设置禁用Spring自身这个bean实例,spring.http.encoding.enabled=false在application.properties.
但是,通过将这些设置添加到application.properties,可以在没有任何Filter实例化的情况下解决此问题:
# 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
Run Code Online (Sandbox Code Playgroud)
mik*_*ika 12
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;
}
Run Code Online (Sandbox Code Playgroud)
我也更喜欢application.properties配置。但spring.http.encoding在新的 Spring Boot 版本 (>2.3) 中已弃用。所以新的 application.setting 应该是这样的:
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35344 次 |
| 最近记录: |