코코넛의 Repository

[mysql] 한글 깨짐 현상 본문

데이터베이스

[mysql] 한글 깨짐 현상

배우는 개발자 코.코.넛 2017.01.23 15:15




mysql 을 사용하다가 WebServer로 부터 전달받은 한글로 된 데이터를 insert 혹은 update를 이용해 DB에 저장을 할 경우 한글이 ???? 로 삽입 되는 상황이 있습니다.


주로 utf-8 인코딩을 사용하는데, webserver에서 보내주는 인코딩 정보와 DB의 인코딩 설정이 다를 경우 ???로 입력이 되지요.


저는 이 이슈로 꽤 고생을 했는데요.. ( 아직...저렙이여서.. )


google로 이것저것 찾아 보아도 주로 많이 나오는 해결법은 my.ini 파일을 수정 하는 거 더군요


제 경우는 local에 mysql 5.6 버전을 설치 하여 개발을 하고 있는데, 주로 리눅스에 mysql을 설치 하시는지 리눅스 버전이 80% 였고,


window 버전이 20% 였는데 그 마저도 저에게는 에러가 발생 하였습니다.

( 찾은 설정 값을 넣으면 mysql이 실행이 안되는 이슈가 생겨 버렸죠.. )


결국 이것 저것 찾아다 저희 팀장님께 힌트를 듣고, 다른 개발자 분의 도움을 받아 다른 방법을 알게 되었는데요


java를 사용 하신다면 jdbc를 파일이 있으실 텐데, 해당 jdbc 설정에 url 형식으로 붙여서 사용 인코딩 설정을 해주는 방법입니다.



<properties 파일 사용 예시>

jdbc.test_url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8

jdbc.test_username=root

jdbc.test_password=test


이렇게 설정 해주시면 됩니다.


하지만 한가지 구분점이 있습니다.


우리가 주로 사용하는 config 파일은 properties or xml 형식입니다.


xml의 경우 & 대신에 ;amp 를 넣어 사용 합니다.


따라서 위의 경우에는 properties 에 경우에 해당하며


xml의 경우에는 아래와 같이 기록하여 사용합니다.


< xml 파일 사용 예시>

jdbc.test_url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf8

jdbc.test_username=root

jdbc.test_password=test


& 뒤에 amp;를 붙여서 사용 해야 합니다.



0 Comments
댓글쓰기 폼