땅주인 님이 쓰신 글 :
: 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 형식으로 변환하려 하는데..
: 방법이 어떻게 되는 지 몰라 헤메고 있습니다. 아시는 분들의 조언을 바랍니다.
:
: 감사합니다.