client로 안드로이드앱을 이용해서 소켓통신을 하고 있고

server는 C++로 소켓통신을 합니다.    모두 TCP로만 합니다.

그런데 PC(MS사)에서 TCP Client로 소켓통신을 유니코드로 하면 정상적으로

서버쪽에서 한글이 깨지지 않고 처리가 되는데,

안드로이드앱으로 넘어와서 소켓통신을 통해서 한글을 보내면 서버쪽에서 한글이 깨져서 나옵니다.

서버는 MS사꺼입니다.

 

안드로이드는 Java이고 서버는 MS Windows에서 기반으로 돌아가는 TCP서버인데,  이럴경우

어떻게 해야 안드로이드앱에서도 한글이 깨지지 않고 서버쪽에서 받고

PC상에서도 한글이 깨지지 않고 보내고 받을 수 있나요 ?

 

참고로,

TCP서버에서 받은 bytes를 인코딩을 아래와 같은 형태로 유니코드로 전환합니다.

 

//----------------------------------------------------------------
 TCHAR strWide2[2000] = {0};
 MultiByteToWideChar( CP_ACP , MB_PRECOMPOSED , (RealMessageData+1) , length, strWide2 , 2000);

이렇게 해서 CString으로 처리해서 사용합니다.  TCHAR로도 사용하죠.

RealMessageData가 실제 Bytes입니다.   전송될 때 인코딩은 일반 유니코드로 합니다.   PC상에서는

제대로 한글이 받고 보내고가 되는데 안드로이드앱에서는 왜 깨지는 걸까요 ?

 

답변 주시면 감사하겠습니다.

난관에 부딛혔네요.

오랜만에 질문 드립니다.

모두 수고하세요.