java 에서 mysql 을 사용하여 하는 예제를 진행하던 중, 한글을 입력하는 부분이 있는 코드를 실행하였습니다.
위의 코드를 입력하였고, 코드 실행이 완료되면 mysql 측에 내용이 전달 되고, 다시 불러오는 예제 였습니다.
실행 후 콘솔 출력을 살펴보니,
mysql 측에서 데이터를 수신 받아 사용하는 부분에서 수신되는 타입이 '???' 임을 확인 할 수 있습니다.
그래서 실제 mysql 에 저장되는 형식이 어떠한지 확인 해본 결과, 실제로 저장시에도 '???'로 저장 됨을 확인 할 수 있었습니다.
database인 'example_springbook' 의 Collation은 'utf8_unicode_ci' 로 설정하였고, 기본으로 한글에 대한 문제는 없을 것이라고 생각 하고,
진행을 하였습니다.
자료를 찾아본 결과 JDBC를 이용한 Connection 을 생성할 때, 추가하여 연결을 생성하여야 하는 것을 확인 할 수 있었습니다.
일단 mysql에 존재하는 데이터를 삭제 한 후 ( id 중복 입력이 안되게 설정이 되어있기 때문에.. )
위의 코드를 아래와 같이 추가 하였습니다. ( 클릭 시 확대 됩니다. )
추가 된 부분은
Connection c = DriverManager.getConnection("jdbc:mysql://10.168.3.80/example_springbook", "admin", "123456");
에서
Connection c = DriverManager.getConnection("jdbc:mysql://10.168.3.80/example_springbook
?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8", "admin", "123456");
으로 수정 하였습니다.
수정 후 코드를 재실행 한 콘솔 출력은 아래와 같고, 한글이 정상적으로 표기 되었습니다.
mysql 측에도 한글이 정상적으로 표기 됨을 확인 할 수 있었습니다.
실행시의 수행과정을 동영상으로 작성 하였으니, 참고 하시면 되겠습니다.
'Software > JAVA' 카테고리의 다른 글
자바 간단하게 마우스 포인터 없애기 (JAVA) (0) | 2013.12.08 |
---|---|
각종 변수간 변환 (0) | 2013.12.08 |
Converting a String to int/double/float (0) | 2013.12.08 |
java Thread 관련 (0) | 2013.12.05 |
FT245BM을 리눅스 기반의 자바프로그램에서 이용하는 방법 (0) | 2013.12.05 |