Расшифровка URL-имен в Delphi: подробное руководство

URL-адреса часто содержат закодированные символы, обозначающие специальные символы или символы, отличные от ASCII. В Delphi доступны различные методы декодирования имен URL-адресов и восстановления их исходной формы. В этой статье мы рассмотрим несколько подходов с примерами кода, которые помогут вам эффективно декодировать имена URL-адресов в ваших проектах Delphi.

Метод 1: использование класса TIdURI (Indy)

Библиотека Indy предоставляет удобный класс TIdURI, который предлагает функции кодирования и декодирования URL-адресов. Вот пример использования TIdURI для декодирования имени URL в Delphi:

uses
  IdURI;
function DecodeURL(const AURL: string): string;
var
  IdURI: TIdURI;
begin
  IdURI := TIdURI.Create(AURL);
  try
    Result := IdURI.URLDecode;
  finally
    IdURI.Free;
  end;
end;

Использование:

var
  URL: string;
  DecodedURL: string;
begin
  URL := 'https%3A%2F%2Fexample.com%2Fpage%3Fparam%3Dvalue';
  DecodedURL := DecodeURL(URL);
  ShowMessage(DecodedURL);
end;

Метод 2: использование класса TNetEncoding (System.NetEncoding)

Модуль System.NetEncoding в Delphi предоставляет класс TNetEncoding, который поддерживает кодирование и декодирование URL-адресов. Вот пример использования TNetEncoding для декодирования имени URL в Delphi:

uses
  System.NetEncoding;
function DecodeURL(const AURL: string): string;
var
  NetEncoding: TNetEncoding;
begin
  NetEncoding := TNetEncoding.Create;
  try
    Result := NetEncoding.URL.Decode(AURL);
  finally
    NetEncoding.Free;
  end;
end;

Использование:

var
  URL: string;
  DecodedURL: string;
begin
  URL := 'https%3A%2F%2Fexample.com%2Fpage%3Fparam%3Dvalue';
  DecodedURL := DecodeURL(URL);
  ShowMessage(DecodedURL);
end;

Метод 3: использование функции TIdURI.URLDecode (дополнительные единицы измерения не требуются)

Встроенный класс TIdURI в Delphi также предоставляет статическую функцию URLDecode, которую можно использовать напрямую, без создания экземпляра объекта TIdURI. Вот пример:

uses
  IdURI;
function DecodeURL(const AURL: string): string;
begin
  Result := TIdURI.URLDecode(AURL);
end;

Использование:

var
  URL: string;
  DecodedURL: string;
begin
  URL := 'https%3A%2F%2Fexample.com%2Fpage%3Fparam%3Dvalue';
  DecodedURL := DecodeURL(URL);
  ShowMessage(DecodedURL);
end;

Декодирование имен URL — важная задача во многих приложениях Delphi. В этой статье мы рассмотрели три различных метода декодирования имен URL-адресов с помощью Delphi — TIdURI из библиотеки Indy, TNetEncoding из модуля System.NetEncoding и функцию TIdURI.URLDecode. Эти методы предоставляют удобные способы декодирования имен URL-адресов и восстановления их исходной формы, что обеспечивает более плавную обработку URL-адресов в ваших проектах Delphi.