작성
·
1.6K
답변 4
0
0
선장님 해결은 했습니다. controller에서 produce부분에 produces = MediaTypes.HAL_JSON_VALUE+";charset=UTF-8" 이라고 설정해주었더니 결과가 한글이 깨지지 않습니다. 근데 애초에 그럼 MediaTyoes에 utf-8코딩이 되어있는건 없는건가요. 강의를 볼때는 쓰신 기억이 있습니다. Hateoas버젼이 올라가서 사라진건지 없는거같습니다.
0
https://github.com/rlaguswhd19/Screening_Clinic
RESTAPI를 복습하려고 공공데이터 포털의 선별진료소 csv파일을 사용하여 구현중에있습니다.
Test를 돌릴때는 Doprint한값은 깨지지만 snippet에 한글이 제대로 들어갑니다. 하지만 mvn package를하고 snippet을 보면 한글이 깨져있습니다.
print로 찍어봤을때 csv파일에서 긁은것이 한글로 잘 나옵니다.
0
흠.. 글쎄요. H2는 유니코드를 지원해서 DB에 들어갈 때 한글이 깨지는게 아니라 그 전에 이미 한글이 깨졌고, 깨진 한글이 H2에 들어간거 같은데요. 우선은 서버쪽에서 로깅을 해서 한글이 안깨져있는지 아닌지 확인해 보시겠어요?
그리고 현재 JVM이 사용하고 있는 기본 인코딩도 출력해 보세요.
System.out.println(Charset.defaultCharset().displayName());
이런 코드를 쓰시면 알 수 있습니다. 이게 UTF-8이 아니라면 아마도 클라이언트가 넘겨준 한글이 깨진 상태로 서버쪽에서 출력될 겁니다. (서버쪽에서 꼭 데이터 로깅해서 확인해 보세요.)
그런 경우에 자바 애플리케이션을 실행할 때 -Dfile.conding이라는 옵셥으로 원하는 인코딩을 설정할 수 있습니다.
java -Dfile.encoding="UTF-8" 이런식으로요. 인텔리J를 쓰고 계시다면 run 설정 창에 다음과 같이 vm 옵셥을 설정할 수도 있으니 참고하세요.