mysql - jdbc한글 깨짐 현상

국물빌런·2020년 2월 7일
1

mybatis로 데이터를 insert를 하면 자꾸 한글이 깨졌다.
내가 원하는건 utf-8인데 자꾸 euc-kr로 인코딩이 되었다.

junit으로 테스트해보니 insert문 자체가 이미 euc-kr로 변경된 문자로 들어가있었다.
일단 vscode의 인코딩은 utf-8이 맞다.'
서버와 테이블의 인코딩을 확인해 보니 그것도 utf-8이 맞다.
그렇다면 범인은 jdbc혹은 mybatis이다.
인터넷을 찾아보니 역시나 클라이언트 접속시 인코딩 설정하는 옵션이 있었다.

https://tost.tistory.com/132
jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8
위와 같이 jdbc접속 url뒤에 인코딩을 지정해주고 jdbc test 결과 정상 동작하였다.
근데 DataSource로 접속하니 접속 에러가 난다.

다시 인터넷 서칭을 해보니 xml파일은 &를 &로 써야한다고 하더라.
https://deeplearning20min2.tistory.com/21
dataSource를 쓰기위해 root-context.xml에 프로퍼티로 url을 등록해야하는데 root-context.xml은
xml파일이기 떄문에 수정해주어야한다.
아래와 같다.
jdbc:log4jdbc:mysql://localhost:3306/BBS?useSSL=false&;useUnicode=true&characterEncoding=utf8
(log4j때문에 약간 수정되었음)

profile
국물을 달라

0개의 댓글