java - spring boot拦截器,拦截返回中文乱码的问题

标签 java spring spring-boot-actuator

spring boot拦截器,拦截返回中文乱码的问题。

代码结构如图

enter image description here

代码显示如下

演示过滤器

public class demoFilter extends GenericFilterBean {

  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;

    response.getWriter().write("您好");
    return;

  }
}

过滤器配置
@Configuration
public class FilterConfig {

  @Bean
  public FilterRegistrationBean jwtFilter() {
    final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    registrationBean.setFilter(new demoFilter());
    registrationBean.addUrlPatterns("/*");
    return registrationBean;
  }

}


Controller
@RestController
public class Demo {

  @RequestMapping(value = "demo", method = RequestMethod.GET)
  public String getStr(HttpServletRequest request, HttpServletResponse response) {
    return "demo";
  }
}

Spring 应用
@SpringBootApplication
public class DemoApplication {

  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }
}

项目启动,访问http://localhost:8080/demo

实际返回:??

期望返回:您好

enter image description here

我在 application.properties 中添加了以下配置:
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8

浏览器访问,返回:

enter image description here

postman 访问并返回正确的结果。

enter image description here

请问,如何完美解决这个问题,让浏览器返回正确的中文。

最佳答案

已经解决了,添加以下代码解决问题:

response.setContentType("text/html;charset=UTF-8");

enter image description here

enter image description here

关于java - spring boot拦截器,拦截返回中文乱码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62079630/

相关文章:

java - 如何禁用 Spring Actuators 的内容协商?

java - 从 Clojure 中使用静态方法生成类

java - 从 Cygwin 设置 CLASSPATH

java - 如何排除一个类被proguard保留

java - 编程上下文中的所有 "events"都是异步的吗?

spring - 通过枚举在 Spring MVC 中选择

java - 带有 mongo atlas 的 Spring Boot 不起作用

java - 如何在单元测试期间在基于 Spring Java 配置的应用程序中初始化 log4j2?

java - Spring Boot 中是否可以更改基于时间的日志级别

spring-boot - 使用 Prometheus 监控 spring boot 缓存指标