在编写 Spring Itegration 测试时,我遇到了 MockMvc 忽略了我的问题

.accept(MediaType.APPLICATION_JSON_UTF8)

设置,并返回带有难看变音的 ISO-8859-1。

将 MockMvc 的默认编码设置为 UTF-8 的最佳方法是什么?

最佳答案

我认为在 Spring 启动时以下设置会有所帮助。

spring.http.encoding.force=true

在我的情况下,设置有点特殊, 它没有

对我的设置起作用的 是向 MockMvc 设置添加过滤器。
@Before
  public void setUp() {
    mockMvc = MockMvcBuilders
        .webAppContextSetup(webApplicationContext)
        .addFilter((request, response, chain) -> {
          response.setCharacterEncoding("UTF-8"); // this is crucial
          chain.doFilter(request, response);
        }, "/*")
        .build();
  }

希望它可以帮助某人并节省一些小时的尝试和错误。

关于character-encoding - MockMvc:将 MockHttpServletResponse 的默认字符编码从 ISO-8859-1 更改为 UTF-8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56684458/

10-10 23:11