function _Ucs2ToText(Buf: PByteArray; Len: Integer): string; var Temp, Dest: array[0..260] of Byte; I: Integer; begin Len := Len div 2; for I := 0 to Len - 1 do begin Temp[I*2] := Buf[I*2+1]; Temp[I*2+1] := Buf[I*2]; Temp[I*2+2] := 0; Temp[I*2+3] := 0; end; WideCharToMultiByte(CP_ACP, 0, PWideChar(@Temp[0]), -1, LPTSTR(@Dest[0]), 260, nil, nil); Result := StrPas(@Dest[0]); end; procedure TForm1.Button1Click(Sender: TObject); var S: array [0..1] of Byte; begin S[0] := $4E; S[1] := $2D; showmessage(_UCs2ToText(PByteArray(@S[0]), 2)); end;
var
Temp, Dest: array[0..260] of Byte;
I: Integer;
begin
Len := Len div 2;
for I := 0 to Len - 1 do
begin
Temp[I*2] := Buf[I*2+1];
Temp[I*2+1] := Buf[I*2];
Temp[I*2+2] := 0;
Temp[I*2+3] := 0;
end;
WideCharToMultiByte(CP_ACP, 0, PWideChar(@Temp[0]), -1, LPTSTR(@Dest[0]), 260, nil, nil);
Result := StrPas(@Dest[0]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
S: array [0..1] of Byte;
begin
S[0] := $4E;
S[1] := $2D;
showmessage(_UCs2ToText(PByteArray(@S[0]), 2));
end;