springboot2.x——接口访问出现中文乱码

一、上一篇使用JdbcTemplate访问数据库

用浏览器访问中文返回正常,使用jmeter却出现了乱码

springboot2.x——接口访问出现中文乱码_第1张图片

 请求结果如下:

springboot2.x——接口访问出现中文乱码_第2张图片 

1、解决方法,配置文件:application.properties新增以下配置

spring.http.encoding.charset=UTF-8
spring.http.encoding.force=true
spring.http.encoding.enabled=true

再使用jmeter访问:返回ok

springboot2.x——接口访问出现中文乱码_第3张图片 

 springboot2.x——接口访问出现中文乱码_第4张图片

主要设置的spring.http.encoding.force=true,其他均为默认

官网文档:

https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html

 

2、当spring.http.encoding.enabled=false时,可以定义过滤器,设置编码类型及强制转换

//一个配置文件,相当于以前的spring配置文件
@Configuration
public class EncodingFilterConfig {
    
    // 向容器中添加组件,将方法的返回值添加到到容器中,等于spring配置bean的id,property属性
    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setForceEncoding(true);
        characterEncodingFilter.setEncoding("UTF-8");
        registrationBean.setFilter(characterEncodingFilter);
        return registrationBean;
    }
}

查了下 spring的一般配置:可以大概看看两者区别


    
    
        
            
        
    

jmeter测试该接口同样解决乱码问题

 

https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html

 

 

 

 

你可能感兴趣的:(SpringBoot)