강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của rlaguswhd191442
rlaguswhd191442

câu hỏi đã được viết

Phát triển API REST dựa trên mùa xuân

h2를 사용하여 test를 진행할때 한글이 들어가면 h2데이터가 깨져서 나옵니다...

Viết

·

1.8K

0

h2 db의 한글 깨짐을 어떻게 해결해야할까용??

rest-apijavaspring

Câu trả lời 4

0

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

아... 네 맞아요. 그게 스프링 HATEOAS 버전이 올라가면서 없어졌요. 한글이 그거 때문에 깨졌군요.

0

rlaguswhd19님의 프로필 이미지
rlaguswhd19
Người đặt câu hỏi

선장님 해결은 했습니다. controller에서 produce부분에 produces = MediaTypes.HAL_JSON_VALUE+";charset=UTF-8" 이라고 설정해주었더니 결과가 한글이 깨지지 않습니다. 근데 애초에 그럼 MediaTyoes에 utf-8코딩이 되어있는건 없는건가요. 강의를 볼때는 쓰신 기억이 있습니다. Hateoas버젼이 올라가서 사라진건지 없는거같습니다.

0

rlaguswhd19님의 프로필 이미지
rlaguswhd19
Người đặt câu hỏi

https://github.com/rlaguswhd19/Screening_Clinic

RESTAPI를 복습하려고 공공데이터 포털의 선별진료소 csv파일을 사용하여 구현중에있습니다.

Test를 돌릴때는 Doprint한값은 깨지지만 snippet에 한글이 제대로 들어갑니다. 하지만 mvn package를하고 snippet을 보면 한글이 깨져있습니다.

print로 찍어봤을때 csv파일에서 긁은것이 한글로 잘 나옵니다.

0

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

흠.. 글쎄요. H2는 유니코드를 지원해서 DB에 들어갈 때 한글이 깨지는게 아니라 그 전에 이미 한글이 깨졌고, 깨진 한글이 H2에 들어간거 같은데요.  우선은 서버쪽에서 로깅을 해서 한글이 안깨져있는지 아닌지 확인해 보시겠어요?

그리고 현재 JVM이 사용하고 있는 기본 인코딩도 출력해 보세요.

        System.out.println(Charset.defaultCharset().displayName());

이런 코드를 쓰시면 알 수 있습니다. 이게 UTF-8이 아니라면 아마도 클라이언트가 넘겨준 한글이 깨진 상태로 서버쪽에서 출력될 겁니다. (서버쪽에서 꼭 데이터 로깅해서 확인해 보세요.)

그런 경우에 자바 애플리케이션을 실행할 때 -Dfile.conding이라는 옵셥으로 원하는 인코딩을 설정할 수 있습니다.

java -Dfile.encoding="UTF-8"  이런식으로요. 인텔리J를 쓰고 계시다면 run 설정 창에 다음과 같이 vm 옵셥을 설정할 수도 있으니 참고하세요.

Hình ảnh hồ sơ của rlaguswhd191442
rlaguswhd191442

câu hỏi đã được viết

Đặt câu hỏi