function GetURIEncodedString(original : string): string;
var
i : integer;
CurrentCharOfString : UTF8String;
begin
result := '';
//цикл по оригинальной строке
for i:=1 to length(original) do
begin
//каждый символ кодируем в UTF8
CurrentCharOfString := UTF8Encode(original[i]);
//берём первый символ, получаем его ASCII код и переводим в шестнадцатиричный формат и ставим в начале символ %, также со вторым символом
result := result + '%' + IntToHex(Ord(CurrentCharOfString[1]),2) + '%' + IntToHex(Ord(CurrentCharOfString[2]),2);
end;
end;