인프런 커뮤니티 질문&답변

글러브님의 프로필 이미지

작성한 질문수

스프링 기반 REST API 개발

201 응답 받기

안녕하세요 선장님 응답값 한글인코딩 여쭤봅니다

해결된 질문

작성

·

436

3

MockMvc로 테스트 중입니다. 응답값이 한글이면 깨지길래 위와 같이 해결했습니다. 근데 너무 지저분해보입니다 ㅠ

혹시 더 좋은 방법 알고계시다면 알려주세요! 감사합니다!

답변 5

4

위 해결방법은 @WebMvcTest 슬라이싱 테스트할때 는 적용이 안되고 @SpringBootTest이여야 적용 되는것 같습니다. (application.properties적용하는 빈이 없어서 ?) @WebMvcTest 어노테이션으로 한글이 안깨지도록하려면 mockMvc 설정을 변경해서 해결했습니다

@Autowired
private WebApplicationContext ctx;



@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(ctx)
.addFilters(new CharacterEncodingFilter("UTF-8", true)) // 필터 추가
.alwaysDo(print())
.build();
}

0

덕분에 해결되었습니다.

감사합니다!!

0

spring.http.encoding.charset=UTF-8

spring.http.encoding.enabled=true

spring.http.encoding.force=true

application.properties 에 추가 하면 되네요 검색해보면 헤더나 필터에 직접 설정하는 방법이 나오던데 제경우엔 이렇게 하니 한글로 잘 출력 됩니다.

0

글러브님의 프로필 이미지
글러브
질문자

찾아보겠습니다 감사합니다!

0

백기선님의 프로필 이미지
백기선
지식공유자

흠.. 글쎄요. static final String으로 상수를 새로 정의해서 쓰시거나, charset=utf8이 필요없게 만들면 좋을거 같네요. 한글이 왜 깨지는지를 파고 드셔야 할거 같습니다. 서버의 기본 인코딩이 UTF8이 아닌가 보네요?