메서드에 @ResponseBody
를 붙여서 String 값을 반환하면 한글이 ???로 나오는 현상
스프링 환경설정 파일에 아래와 같이 bean을 설정해줌
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- 지원되는 캐릭터셋에 UTF-8 추가 -->
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
Spring의 MessageConverter의 Charset의 기본값은 ISO-8859-1
형태로 되어 있다. 여기에 UTF-8
을 추가해줌으로써 String값을 UTF-8
형태로 바꾸는 것이다.
public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {
public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); //기본 문자열 셋은 ISO-8859-1로 설정되어 있음.
private final List<Charset> availableCharsets;
private boolean writeAcceptCharset;
public StringHttpMessageConverter() {
this(DEFAULT_CHARSET);
}
public StringHttpMessageConverter(Charset defaultCharset) {
super(defaultCharset, new MediaType[]{MediaType.TEXT_PLAIN, MediaType.ALL});
this.writeAcceptCharset = true;
//가능한 문자열 셋을 가져옴.
this.availableCharsets = new ArrayList(Charset.availableCharsets().values());
}
...
}
Spring Data & MongoDB : 메소드 이름만으로 쿼리하기 (1) | 2017.08.09 |
---|---|
Spring : 트러블 슈팅 : Controller에서 객체 반환시 json으로 변환이 되지 않는 경우 (3) | 2017.08.09 |
MongoDB : Amazon Linux에 설치 및 설정하기 (0) | 2017.08.02 |
IntelliJ에서 Jenkins 연동하기 (0) | 2017.07.26 |
Java : 1개의 엘리먼트가 들어있는 리스트를 사용할때에는 Arrays.asList 대신 Collections.singletonList를 사용하자 (0) | 2017.05.06 |
댓글 영역