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.