김도완 님이 쓰신 글 :
: 땅주인 님이 쓰신 글 :
: : PC: C++ Builder 2009
: : Tablet PC: 안드로이드 O/S, Eclipse 개발 환경 ( Java 개발 환경)
: : 통신: Socket
: :
: : Tablet으로 Socket을 통해 사람 이름을 보내고,
: : 다시 Socket으로 이름을 받으면 이상한 데이터가 들어 있습니다.
: : 아마 UTF16, UTF8간의 차이가 아닌가 생각이 듭니다.
: : Tablet쪽에서는 아래의 코드로 해서 보낸 코드를 Java의 String으로 잘 변환이 된다고 하구요.
: : Java 쪽에서 PC쪽으로 던지면 이상한 값들이 들어오는 데 코드 변환이 필요해 보이는데
: : 어떻게 해야 할 지 모르겠습니다.
: :
: : [ 보낼 때]
: :
BTYE STName[20];
: : memset(STName, 0x00, sizeof(STName));
: : UnicodeString Name = "홍길동1";
: :
: : memcpy(STName, Name.w_str(), Name.Length()*2);
: :
: : // Send Socket to Tablet PC...
: :
: : [ 받을 때]
: :
BYTE STName[20];
: : memset(STName, 0x00, sizeof(STName));
: :
: : // Receive Socket From Tablet PC
: :
: : wchar_t *pname = (wchar_t *) STName;
: : UnicodeString Name = UnicodeString(pname, 20);
: :
: : 보낼 때의 값은
: : 4D D6 38 AE D9 B3 31 00 00 00 00 ....
: :
: : 수신받은 값은
: : ED 99 8D EA B8 B8 EB 8F 99 34 00 00 .....
:
: >> 마지막 글자가 '4'라면 UTF8입니다.
:
:
: :
: : 이런 형태의 값입니다.
: :
: : "홍길동"이라는 글자 부분은 같은 데 어떤 코드 형식이냐에 따라 값이 달라지는 듯 합니다.
: : 이것을 PC에서 제가 일반적으로 쓰는 UnicodeString 형식으로 변환하려 하는데..
: : 방법이 어떻게 되는 지 몰라 헤메고 있습니다. 아시는 분들의 조언을 바랍니다.
: :
: : 감사합니다.