Warum kodierst Du den
HTML-Quelltext in Javascript noch mit EncodeURI? Du bekommst doch sowieso den Text als JSON zurück.
Das hier genügt:
EdgeBrowser1.executescript('document.documentElement.outerHTML');
Und dann
Delphi-Quellcode:
uses System.json, System.IOUtils;
...
procedure TForm2.EdgeBrowser1ExecuteScript(Sender: TCustomEdgeBrowser;
AResult: HRESULT; const AResultObjectAsJson: string);
var
json: TJSONValue;
begin
json := TJSONObject.ParseJSONValue(AResultObjectAsJson);
TFile.writeAllText('test.html', json.AsType<string>, TEncoding.UTF8);
json.Free;
end;