PDA

View Full Version : سوال: مشکل در کامپوننت TwebBrowser



acilios
سه شنبه 23 شهریور 1389, 00:28 صبح
با سلام.
من برای ذخیره کردن یک صفحه وب در برنامه از تابع زیر استفاده می کنم :

procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;
var
PersistStream: IPersistStreamInit;
Stream: IStream;
FileStream: TFileStream;
begin
if not Assigned(WB.Document) then
begin
ShowMessage('ÚÏã ÈÇѐÒÇÑí ÕÝÍå æÈ') ;
Exit;
end;

PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate) ;
try
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
if Failed(PersistStream.Save(Stream, True)) then ShowMessage('SaveAs HTML fail!') ;
finally
FileStream.Free;
end;
end;

و فراخوانی تابع به شکل زیر :

WB_SaveAs_HTML(WebBrowser1,'Test.html') ;

حال مشکلم اینه که وقتی صفحه ذخیره شده رو باز میکنم (آفلاین) حروف فارسی پشتیبانی نمیشن (Unicode-UTF8) . . .
لطفا راهنمایی کنید.

mrbm_2007
پنج شنبه 25 شهریور 1389, 18:23 عصر
var
sl : tStrings;
Enc : tEncoding;
begin
sl := tStringList.Create;
Enc := TUnicodeEncoding.Create;
try
sl.LoadFromStream(Stream,Enc.UTF8);
sl.SaveToFile('filename',Enc.UTF8);
finally
enc.Free;
sl.Free;
end;
end;