function SaveUnicode(s:string;b:boolean=true):string;
var
ms:TMemoryStream;
hs:string;
ws:WideString;
p: PAnsiChar;
sS:String;
begin
result := '';
if s=''then exit;
ms:=TMemoryStream.Create;
if b then
begin
hs:=#$FF#$FE;
ms.Write(hs[1],2);
end;
ws:=WideString(s);
ms.Write(ws[1],Length(ws)*2);
ms.Position:=0;
SetLength(SS, ms.Size);
Move(ms.Memory^, SS[1], ms.Size);
ms.Free;
result := SS;
end;