springboot下的纯html页面乱码带问号?

springboot下的纯html页面乱码带问号?

 

前端html也指定了utf-8也无用

 

html访问后端接口 返回的

Content-Type:  text/html;charset=ISO-8859-1

 

 

 


所以大概率是springboot编码影响到了html页面

 

在springboot的application.yml加上以下配置

server:
  servlet:
    encoding:
      #enabled: true   #让系统的CharacterEncdoingFilter生效
      charset: UTF-8   #默认编码格式
      force: true   #强制request,response都使用charset属性的值

 

问题2

 springboot 纯html前端utf-8提交给后台乱码,结果controller读取的时候乱码了。这是因为Java 在linux上面默认使用的编码格式为ISO-8859-1,结果有filter读取之后到controller就乱码了
修改办法,设置全局默认的编码格式,且order设置优先,然后把其他filter的Order顺序降低就行
 
 
/**
     * 解决前端请求后端乱码问题
     * @return
     */
    @Bean
    public FilterRegistrationBean myFilterRegistrationBean(){
        //创建字符编码过滤器
        CharacterEncodingFilter characterEncodingFilter=new CharacterEncodingFilter();
        //设置强制使用指定字符编码
        characterEncodingFilter.setForceEncoding(true);
        //设置指定字符编码
        characterEncodingFilter.setEncoding("utf-8");

        FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();
        //设置字符编码过滤器
        filterRegistrationBean.setFilter(characterEncodingFilter);
        //设置字符编码过滤器路径
        filterRegistrationBean.addUrlPatterns("/*");

        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return filterRegistrationBean;
    }

 

 
posted @ 2024-07-06 00:24  ☆♂安♀★  阅读(74)  评论(0编辑  收藏  举报