在编写 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/