Какие проблемы? Сам же ссылку дал.
Цитата: "Такое преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в Юникоде (UTF-8) в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении".
Код:
function CharInSet(C: AnsiChar; const CharSet: TSysCharSet): Boolean;
begin
Result := C in CharSet;
end;
function URLEncode(const Url: Utf8String): string;
var
I: Integer;
begin
Result := '';
for I := 1 to Length(Url) do begin
if CharInSet(Url[i], ['A'..'Z', 'a'..'z', '0'..'9', '-', '=', '&', ':', '/', '?', ';', '_']) then
Result := Result + Utf8ToAnsi(Url[i])
else
Result := Result + '%' + IntToHex(Ord(Url[i]), 2);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(URLEncode('Вот текст для perevoda 123789'));
end;