springboot下的纯html页面乱码带问号?
springboot下的纯html页面乱码带问号?
前端html也指定了utf-8也无用
html访问后端接口 返回的
Content-Type: text/html;charset=ISO-8859-1
![](https://img2024.cnblogs.com/blog/444141/202407/444141-20240706002233999-961402269.png)
所以大概率是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;
}