在编写Spring Itegration Tests时,我遇到了MockMvc忽略我的问题
.accept(MediaType.APPLICATION_JSON_UTF8)
设置,并返回 ISO-8859-1 并带有不好看的变音符号。
将 MockMvc 的默认编码设置为 UTF-8 的最佳方法是什么?
我读到在春季启动中以下设置会有所帮助。
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();
}
希望它对某人有所帮助,并节省几个小时的尝试和错误。
这对我有用:
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.force=true
我从这个SO问题中得到了这个想法:SpringBoot响应字符集错误
这对我有用(Spring Framework 5.3.18(:
MockMvcBuilders.defaultResponseCharacterEncoding(StandardCharsets.UTF_8)
例如:
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(controller)
.defaultResponseCharacterEncoding(StandardCharsets.UTF_8)
.build();