Study/Java
Spring Rest Docs response body 한글 깨짐 문제 (mockmvc 설정 문제)
Bluesky_
2020. 6. 19. 09:28
반응형
Spring Rest Doc 문서를 만드는데 generated-snippets에 생성된 response-body.adoc 가 eclipse에서 test 코드를 실행했을 땐 정상적으로 결과가 나오는데 mvn 명령으로 실행했을 땐 한글이 깨져서 생성되었다.
처음엔 maven-compiler-plugin의 encoding 문제인가 의심했지만 해당 문제가 아니었다.
한글 깨짐을 해결할 수 있는 방법이 2가지가 있는데 하나는 요청 accept header에 charset=UTF-8을 추가하는 것이다.
this.mockMvc.perform(
post("/someUrl")
.accept(MediaType.APPLICATION_JSON_UTF8)
.params(params)
.cookie(getLoginCookie())
)
하지만 charset=UTF-8 옵션은 현재 deprecated 상태이다. (이후 사라질 예정이라고 한다.)
다른 방법은 mockmvc를 생성할 때 CharacterEncodingFilter를 추가하면 된다.
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
.addFilters(new CharacterEncodingFilter("UTF-8", true))
// ...
.build();
반응형