|
나중에 정리해서 팁&트릭 란에 올리겠습니다.
우선 해결한 것은..
1. MySQL의 Table 생성 시 UTF-8로 할 것
2. Tnt component에서 데이터를 받으면 WideString인데 ...이를 UTF8 코드로 변환할 것
WideString a = TntEdit1->Text;
UTF8String b = UTF8Encode(a);
이렇게 한 후 아래의 DB에 넣는 방법 대로 넣으면 그대로 적용되더군요.
3. DB에서 빼낼 때
UTF8String b = ADOQuery1->FieldByName("Name")->AsString;
WideString a = UTF8Decode(b);
TntEdit1->Text = a;
이렇게 하니 되더군요.
땅주인 님이 쓰신 글 :
: DB : MySQL 5.0
: 연결방식: ADO, dbExpress 두 개 모두 테스트 중..
:
: Tnt component 설치해서 Unicode로 데이터를 입력 받았는데요..
: DB에 어떻게 넣는 지, 어떻게 가져오는 지 ..... 한 수 지도를 ....
:
: 기존에 하던 방식(TADOQuery)의 sql 문장에 넣고 하는 것은
: 깨지거나 에러 나거나 그러는데.. 쌈빡하고 깔끔하게 끝내는 코드가 있을 것 같은데..
: 한 수 지도를 바랍니다.
: (영어, 투르크어, 러시아어)
: 이렇게 나와야 하는데 => AABB Ää Çç ФФИИ
: 이렇게 나옵니다. => AABB Ää Çç ????
:
: "????" 이 놈이 문제입니다.
:
: // 넣을 때............................................................................................................
:
: WideString a = TntEdit1->Text;
: WideString wSQL = "INSERT INTO TB_UNICODE ( NAME, ADDRESS ) VALUES ( '" + a + "', 'abcd') ";
: ....
: ADOQuery1->SQL->Clear();
: ADOQuery1->SQL->Add(wSQL);
: ADOQuery1->ExecSQL();
:
: // 가져 올 때............................................................................................................
:
: AnsiString sSQL = " SELECT * FROM TB_UNICODE ";
:
: ADOQuery1->SQL->Clear();
: ADOQuery1->SQL->Text = sSQL;
: ADOQuery1->Active = true;
:
: TntEdit1->Text = ADOQuery1->FieldByName("NAME")->AsString;
|