Delphi 10.2 如何让 Log.d 忽略 HTML 源代码中的 %?

Delphi 10.2 How do I get Log.d to ignore % in the HTML source code?

如何让 Log.d 忽略 HTML 源代码中的 %?或者告诉Log.d不要格式化代码?

我发送到程序的HTML代码:

<input type="hidden" name="Mode" value="Search%20Statutes" />

我创建的程序:

procedure ThtmlParser.DebugText(ExtraStr, Str: string);
var
  CombineStrings: string;
begin
  CombineStrings := ExtraStr + Str;
  Log.d(CombineStrings);
  if Assigned(FOnDebug) then
  begin
     FOnDebug(CombineStrings);
  end;
end;

我如何使用它:

Target := '<input type="hidden" name="Mode" value="Search%20Statutes" />'
DebugText('Target: ', Target);

我遇到的错误:

First chance exception at 6C1812. Exception class EConvertError with message 'No argument for format 'Target: <input type="hidden" na''. Process htmlParserExample.exe (5168)

我认为正在发生的事情是,Log.d 认为 HTML 代码中的 % 用于格式化,但实际上不是。

因为 Delphi 是 "looking for a format",我给了它一个格式来遵循。

我不知道为什么 Delphi 的开发团队会创建一个 class procedure d(const Msg: string); overload; inline; 而不让我们使用它?这就是让我感到困惑的原因。所以我改用这个:

class procedure d(const Fmt: string; const Args: array of const); overload;

这是解决我的问题的新程序:

procedure ThtmlParser.DebugText(ExtraStr, Str: string);
var
  CombineStrings: string;
begin
  CombineStrings := ExtraStr + Str;
  Log.d('%s',[CombineStrings]);
  if Assigned(FOnDebug) then
  begin
     FOnDebug(CombineStrings);
  end;
end;