델파이2009와 MySQL 5 버젼 연동시 한글 깨짐에 대한 문제 입니다.
2014.03.21 11:57
질문하시기 전에 게시판 검색을 먼저 해주세요.
타블릿PC, 스마트폰에 관한 질문 또는 요청은 <포터블기기 질문답변> 게시판을 이용해주세요.
=============================================================================================
백군임돠....
3일째 삽질중인 문제를 더 이상은 시도해 볼게 없어서 만문에 글을 올립니다.
델파이2009를 이용해서 뭘 좀 개발하고 있는데.....
MySQL 과의 연동은 정상적으로 이루어 졌으나...........
한글이 몽땅 깨져요. MySQL 상에 INSERT 는 아주 정상적으로 되구요
어플리케이션에서 불러올 때 인코딩문제인지.. 마구마구 깨지네요
아래에는 스샷입니다.
DB는 이렇게 정상적이구요..... 이것도 한글 INSERT 안되서 버젼을 몇번을 갈아엎었는지....
어플리케이션 실행하면 한글은 몽조리 ???로 나옵니다.
현재 MySQL 인코딩은 utf-8 로 해놨습니다.
MySQL 지우고 버젼 바꿔가며 다시 깔면서 언어 인코딩을 euckr 로도 해보고 latin1 로도 해보고 다른걸로도 해보고 했는데
(3 버전대 , 5버젼대 마이너 버젼도 다르게 한 5가지 정도..... )
결과적으로는 대동소이합니다. 한글이 안되죠.........
이제 델파이2009가 unicode 기반으로 되어 있어서 그런건지 아니면 구조적인 문제인지..
구글링에서도 비슷한 글들을 많이 봤어요
마지막 희망입니다 -ㅂ- 살려주세요 ㅋㅋㅋㅋㅋㅋ
번갯불에 콩구워먹듯이 해야 하는데 시방서에 서버를 MySQL 로 고정해놔서 다른거 쓰지도 못해요 ㅜ.ㅜ
델파이 상에서 각종 인코딩 디코딩 와이드스트링... 제 머리로 해볼만한건 다 해봤습니다.
델파이 잘 아시는 분 계시면 개인강습좀 ㅜ.ㅜ
코멘트 4
-
박영민
03.21 14:20
-
현재 문제가 되는 부분을 정리해 보자면요
1. MySQL 5.3 서버 설치
2. ODBC 데이터소스 설정3. TADOConnection 으로 MySQL 연동
4. MySQL 의 언어 인코딩 설정은 현재 utf85. 현재 운영체제 윈도우7 64비트
6. 컴파일한 어플리케이션을 실행하면 한글이란 한글은 다 깨져있음
DBGRID 는 물론이거니와 StringGrid에서도 한글이 깨지고 showmessage 에서도 깨지고 다 깨짐..
로그인 해서 웰컴메시지 나오는 부분부터 한글은 안녕...
어쩔 수 없이 TEST용 모든 데이터의 한글을 영어로 바꿔서 넣고 진행 중인데요
근데 시방서에 "유저 아이디는 한글도 가능합니다" 가 명시되어 있데요.... 게다가 DB는 무조건 MySQL 만 써야 하구요
7. ZEOS 의 ZConnection은 연동 자체가 잘 안됨.. (내공부족인듯요)
8. DBE 쪽의 다른 컴포넌트들로도 MySQL 연동 자체가 안됨
9. 멘탈의 유리화
이상 입니다....
-
전설의주부용사
03.21 16:28
utf-11 -
mysql에 들어가있는 string이 utf-8이라면, 불러서 화면에 보여줄때 WideChar로 변환을 해주셨나요? 16bit UNICODE로 표현하기 때문에, 문자열을 변환해주어야 할텐데요.
http://stackoverflow.com/questions/8823942/with-delphi-xe2-and-mysql-5-1-how-return-utf8-string-from-query
한번 참고해보세요. 모든 Query의 결과를 읽어올 때마다 변환해주어야 할 것으로 보입니다.
그리고 찾아보니, 델파이 2009부터 Unicode에 대한 적극적 지원이 포함되었네요. 기존에는 Ansi Char가 기본 문자열이었는데, 2009부터 Wide Char가 기본 문자열로 변경되었군요. 이런 차이때문일 수도 있습니다. 한번 다음 문서를 확인해보세요.
http://www.devgear.co.kr/pdf/marco_cantu_delphi_and_unicode_kor.pdf
db-grid 문제 아닌가여? 어떤 콤포넌트 이용하시는지?