문자 "test입니다.야옹,123456789"를 16진수로 변환하여 전송 후
받는 쪽에서 16진수 데이터를 원래대로 복원하고자 하는데 한글부분이 깨집니다.
"test입니다.야옹,123456789" //원문=> "74657374C0D4B4CFB4D92EBEDFBFCB2C313233343536373839" //16진수
=> "testAO´I´U.¾ß¿E,123456789" //수신
<!--source-->
lv_resp := '74657374C0D4B4CFB4D92EBEDFBFCB2C313233343536373839';
i :=0;
while i < (length(lv_resp) div 2) do
begin
if StrToInt('$' + copy(lv_resp,i*2+1,2)) > 127 then
begin //한글
cvtemp := cvtemp + widechar(StrToInt('$' + copy(lv_resp,i*2+1,4)));
i := i + 2;
end
else //영숫자
begin
cvtemp := cvtemp + widechar(StrToInt('$' + copy(lv_resp,i*2+1,2)));
i := i + 1;
end;
end;
i:integer;
cvStr:string; //중요-한글변환 메모리변수라야 한글변환됨.
for i := 0 to (length(lv_resp) div 2)-1 do
cvStr := cvStr + Char(strtoint('$'+ Copy(lv_resp,i* 2+1,2)));
memRecvStr.Text := cvStr;