C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[46485] Re:Re:Re:[급질문]BCB6+TNT+MySQL+utf8+한글+중문+영어
왕초보 [] 2334 읽음    2006-09-08 21:47
쩝..죄송합니다. 제가 델파이는 초보라 그런데로 조금 아는 닷넷(C#)으로 설명했습니다.
어차피 구현하는 것은 같으니깐 이해하리라 생각했는데 죄송합니다.
어차피 컨넥터 부분에서 한글되면 된다고 봐도 무방하다고 생각합니다.
델파이로 작업하실때는
http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_qna&no=10726 글을
참고하시면 될듯 싶습니다.

임영우 님이 쓰신 글 :
: OdbcDataAdapter 이런거 없다고 하는데요....
: 제가 워낙 초보라서...
: 설명해주신 원리는 이해를 했는데요...
: 어떻게 구현해나가야 하는지.... 전혀 감을 못 잡고 있습니다.
: 도와주세요.
: ㅠ,.ㅠ;
: .
:
:
: 왕초보 님이 쓰신 글 :
: : phpMySQL은 웹이므로 당연히 utf8입니다. 지원이 되죠.
: : 어플리케이션은 상황이 좀 다릅니다. 운영체제에서 유니코드는 지원하지만
: : 어플리케이션 자체가 utf8은 아니죠.
: : 예를 들어 오라클(윈도우환경)의 경우 설치시 utf8로 설치 했다고 해서
: : 클라이언트툴이 utf8은 아닙니다.(win949입니다.)
: : 이건 어떤 의미인고 하니...단지 클라이언트는 내가 어떤 캐릭터셋 환경에서 어떤 캐릭터 셋을 사용한다고
: : 서버에 알려줄 뿐입니다.
: : mysql의 예를 들어 보겠습니다. (window환경)
: : mysql설치시에 utf8로 설치 합니다.
: : 웹에서는 utf-8로 설정하면 한글 잘됩니다.
: : 그런데 클라이언트(툴,어플리케이션,개발..)에서는 한글이 깨져 보이죠. 이건 당연합니다.
: : 이 클라이언트가 웹(웹브라우저url)하고 환경이 다르기 때문이죠.
: : 그래서 클라이언트(c/s)에서 utf8로 맞추어야 합니까? 아닙니다.
: : 내가 어떤 캐릭터셋의 클라이언트(c/s)를 쓰고 있다고 서버에 알려주어야 합니다.
: : 즉 euckr이라고 해주어야 합니다. utf8이 아니고...
: : 왜냐하면 오라클의 예에서 말했듯이 자신의 환경이 utf8이 아니기 때문이죠.
: : 닷넷에서도 마찬가지 입니다. 다음과 같이 (mysql서버는 utf8입니다.)
: : 윈도우에서
: : private void button1_Click(object sender, EventArgs e)
: :         {
: :             string connectionString = "DRIVER={MySQL ODBC 3.51 Driver};" +
: :                           "SERVER=localhost;" +
: :                           "DATABASE=MyTestDb;" +
: :                           "UID=test;" +
: :                           "PASSWORD=1234;" +
: :                           "OPTION=3;" +
: :                           "stmt=set names euckr";
: :             string commandString = "select * from table";
: :
: :             OdbcDataAdapter DBAdapter = new OdbcDataAdapter(commandString, connectionString);
: :
: :             DataSet DS = new DataSet();
: :             DBAdapter.Fill(DS, "table");
: :             dataGridView1.DataSource = DS.Tables["userdb"].DefaultView;
: :         }
: : 이렇게 해야 c/s에서 한글이 보입니다.(델파이로 연결 할 때도 마찬가지)
: : stmt=set names utf8로 해야 할 것 같은데 아닙니다. 나의 환경이 utf8이 아니기 때문이죠.
: : 일례로 윈도우 명령프롬프트(도스창)에서 쿼리 해보면 당연히 한글이 깨져 보입니다.
: : 도스창은 win949이고 mysql은 utf8이기 때문이죠.
: : 그럼 도스창을 utf8로 맞추어야 하나요? 아닙니다. 도스창 자신은 한글 캐릭터의 이런 캐릭터를 사용한다고
: : 서버에 알려주어야 합니다.
: : 즉, 명령창에서 set names euckr 해주어야 한글이 보입니다.
: : 결론은 웹하고 어플리케이션하고 다르다는 겁니다. 캐릭터셋 부분이....
: :
: :
: : 임영우 님이 쓰신 글 :
: : : 안녕하세요.
: : : 중문윈도우즈XP Pro 기반에서,
: : : BCB++6 + Tnt + MySQL 기반에 db를 utf8로 만들어 사용하려 합니다.
: : : DB관련 컴포넌트는 Zeos를 사용합니다.
: : : phpMySQL로 접속해서 select 해 보면 결과가 한/중모두 문제 없이 잘 나옵니다.
: : : TNT를 사용해서 한/중문을 동시에 지원하는 db사용 프로그램을 개발하려 합니다.
: : : tnt에서는 글자들이 죄다 ??? 이렇게 물음표로 나옵니다.
: : : TntDBGrid의 Columns의 Font->Name과 Font->CharSet을 아무리 바꾸어 보아도 다 물음표로 나옵니다.
: : : 그래서 select 한 것을 TntEdit1->Text에 넣어보려 했습니다.
: : : TntEdit1->Font->Name 과 TntEdit1->Font->CharSet을 아무리 바꾸어 보아도 다 물음표로 나옵니다.
: : :
: : : 또, 중문윈도우즈의 국가및언어옵션->고급->"유니코드를 지원하지 않는 프로그램의 언어 버젼과 일치하는 언어를 선택하십시오" 에서 "한국어"로 설정하면, 한글/중문 모두 아무 이상 없이 잘 나옵니다.
: : :
: : : 그렇다면.... 한글윈도우즈에서는 기본적으로 문제 없이 잘 될 것이라는 생각인데요....
: : : 폰트의 문제인가요?
: : : TNT는 유니코드를 위한 컴포넌트인데.... 이 설정에 영향을 받는다는 것이 또 좀 이상합니다.
: : : 제가 뭘 잘못한 것인가요?
: : :
: : : 이거 어떻게 해야 해결이 될까요?
: : : 도와주세요.
: : : .

+ -

관련 글 리스트
46477 [급질문]BCB6+TNT+MySQL+utf8+한글+중문+영어 임영우 1700 2006/09/08
46478     Re:[급질문]BCB6+TNT+MySQL+utf8+한글+중문+영어 왕초보 2816 2006/09/08
46483         Re:Re:[급질문]BCB6+TNT+MySQL+utf8+한글+중문+영어 임영우 1712 2006/09/08
46485             Re:Re:Re:[급질문]BCB6+TNT+MySQL+utf8+한글+중문+영어 왕초보 2334 2006/09/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.