SpringBoot设置Servlet字符编码集
1. 通过配置类实现
-
创建系统配置类
-
public class SystemConfig { @Bean public FilterRegistrationBean characterEncodingFilterRegistrationBean(){ CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); //设置强制使用指定字符编码集 characterEncodingFilter.setForceEncoding(true); //设置指定字符编码 characterEncodingFilter.setEncoding("utf-8"); FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); //设置字符编码过滤器 filterRegistrationBean.setFilter(characterEncodingFilter); //设置字符编码过滤器路径 filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } }
-
在Servlet设置统一字符编码集
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("你好,Hello World"); //统一设置浏览器编码格式 resp.setContentType("text/html;character=utf-8"); resp.getWriter().flush(); resp.getWriter().close(); }
-
在SpringBoot配置文件里取消默认编码格式
server.servlet.encoding.enabled=false #这里有一个过时的方法,使用哪个方法好像没有用 #spring.http.encoding.enabled=false
2. 通过springboot配置文件
只需在配置文件中添加配置( resp.setContentType("text/html;character=utf-8");
在Servlet也要)
#设置请求响应编码
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
server.servlet.encoding.charset=utf-8