유니코드를 넣어야 하는데, 안 그러니 깨지는거 당연하지요.
char A[] = "abc"; // ascii 임. 이걸 변수라 보고
AnsiString strA = abc; // 일단 여기에 넣고
UnicodeString newmsg = strA; // 변환하고
ShowMessage(newmsg);
이렇게 하면 될겁니다
김지숙 님이 쓰신 글 :
: 음 답변 감사합니다. ^^
:
: StringToJString 이걸로는 안되네요 ㅠㅠ --> JStringToString(StringToJString((char *)msg))
:
: button2에서처럼 문자열에 L"" 를 붙이면 한글이 스마트폰에서 잘보입니다.
:
: 서버에서 내려주는 msg는 내용이 계속 바뀌는 공지사항 같은건데..
:
: 어떻게 해야 좋을까요?
: 오늘로 3일째 구글링만 하는데... 해결이 안되네요 ㅠㅠ
:
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: unsigned char msg[80] = {0,};
: memcpy(msg, "한글", 80);
:
: UnicodeString newmsg = (char *)msg;
:
: ShowMessage(newmsg);
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: UnicodeString newmsg = L"한글";
: ShowMessage(newmsg);
: }
:
: ---------------------------------------------------
:
: 정성훈.해미 님이 쓰신 글 :
: : StringToJString()함수를 사용해 보세요.
: :
: : 문자열을 StringToJString()함수에 넣으면 잘 나올겁니다.
: :
: : 김지숙 님이 쓰신 글 :
: : : UnicodeString str = L"가나다"
: : :
: : : ShowMessage(str);
: : : 은 잘 되는데요...
: : :
: : : UnicodeString str = (char *)in.msg;
: : : ShowMessage(str);
: : :
: : : 이렇게 할때는 한글이 깨짐니다.
: : : 변수에 "L"붙일 수도 없고 어떻게 처리 해야 할까요?
: : : char에 담긴 한글은 "L"을 붙일 수도 없고... 어떻게 해야 할까요?
: : :
: : : 스마트폰에서만 깨져요... windows에서는 한글 잘 나옵니다.
|