Code: function WideStringToString(s:string):string; var s1,s2:string; i:integer; wchar:WideChar; function HexToInt(Hex: string) : integer; const h:array ['A'..'F'] of Integer = (10,11,12,13,14,15); var i : integer; Int : integer; Hex1:string; begin Hex1:=UpperCase(Hex); int:=0; for i:=1 to length(Hex1) do begin if Hex1[i] < 'A' then Int:=Int * 16 + StrToInt(Hex1[i]) else Int:=Int * 16 + h[(Hex1[i])]; end; result := Int; end; begin s1:=''; s2:=s; repeat if Pos('\u',s2)=1 then begin i:=HexToInt(Copy(s2,3,4)); wchar:=WideChar(i); s1:=s1+WideCharToString(@wchar)[1]; Delete(s2,1,6); end else begin if length(s2)>0 then begin s1:=s1+s2[1]; Delete(s2,1,1); end; end; until Length(s2)=0; Result:=s1; end;