콘텐츠로 건너뛰기

Mysql 4.0.X 한글저장 문제

요즘 JSP로 만들어진 뭔가를 만들기 위해서 다시 작업중입니다. 매번 PC에 아파치, 톰캣, Mysql설치 및 설정을 해주기 귀찮아서 아예 JSP호스팅을 하나 신청해서 작업을 하고 있습니다.

예전에도 골치를 썩었었는데 역시나 이번에도 Mysql의 euc_kr인코딩이 발목을 잡네요. 서버 환경이 Mysql4.1이상이라면 맘 편하게 UTF-8로 사용을 하면 편할텐데 어쩔 수 없이 EUC-KR로 작업을 하고 있습니다.

MySql 한글 깨짐
MySql 한글 깨짐
발생문제

 

DB url을 설정하는 부분에

jdbc:mysql://localhost:3306/(DB이름)?characterEncoding=euc_kr

이라고 적고 사용하였으나 DB에는 한글이 깨져서 저장됨

?chracterEncoding=euc_kr을 추가한 것 외에도 인터넷으로 추가로 찾아낸 별별 방법을 모조리 해 봤습니다. 그러나 DB테이블의 저장된 내용을 살펴보면 한글이 죄다 깨져서 저장되고, 웹에서 DB의 정보들을 출력해도 역시나 깨져서 저장된 내용이 나타납니다.

뒤늦게서야 해결책을 찾았는데 페이지 상단에

euc_kr 처리
euc_kr 처리

의 내용을 추가해 주는 것입니다.

폼을 통해서 전달되는 값이 euc-kr로 전달되지 않나봅니다. 입력을 받는 폼과 전달받은 값을 DB에 저장하는 페이지 사이에 전달되는 값이 깨져서 넘어오니 DB에 저장하는 부분을 아무리 고쳐도 깨져서 저장될 수 없는 상황이었습니다.

위의 내용을 추가해준 이후로 한글저장에 문제가 해결되었습니다.

인터넷에서 많이 있는 내용이

jdbc:mysql://localhost:3306/(DB이름)?useUnicode=true&charcterEncoding=euc_kr

이렇게 사용하라는 내용이 많은데 useUnicode=true값은 생략해도 된다고 합니다. 기본 설정값이 보통 true이기 때문에 구지 써 넣지 않아도 상관없다고 합니다.

euc-kr과 싸우는건 이제 그만하고 싶습니다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다