Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как закодировать строчку в URL-кодированную. [D7, WinXP]


Зигмунд ©   (2005-01-30 11:53:00) 

Здравствуйте, Мастера!
Может в Delphi есть аналог функции в PHP – rawurlencode?


Anatoly Podgoretsky   (2005-01-30 12:33:00) [1]

Это не относится к Интернет. Вопрос про ICS, Indy, NetManage, NetMastes и т.д. В Д7 базовый Indy, там есть UrlEncode


Зигмунд   (2005-01-30 12:25:00) [2]

2SergP Спасибо!
2Anatoly Podgoretsky - Компонент TClientSocket.


SergP   (2005-01-30 12:16:00) [3]

Можно попроще:


function WebCode(const Src: String): String;
var
 i:integer;
begin
 result:='';
 for i:=1 to length(Src) do Result:=Result+'%'+IntToHex(Ord(Src[i]),2);
end;


Но на больших строках будет медленнее работать


Anatoly Podgoretsky   (2005-01-30 12:15:00) [4]

Смотря какие компоненты для работы с Интернет используешь, в большинствве есть.


SergP   (2005-01-30 12:12:00) [5]


> Может в Delphi есть аналог функции в PHP – rawurlencode?


Не знаю или есть но я писал сам:


function WebCode(const Src: String): String;
var
EndLen,i: Integer;
s: String;
begin
EndLen:=0;
SetLength(Result,Length(Src)*3);
for i := 1 to Length(Src) do
  begin
  inc (EndLen);
  If Src[i] in ['0'..'9','A'..'Z','a'..'z']
     then Result[EndLen]:=Src[i]
     else begin
          Result[EndLen] := '%';
          s := IntToHex(Ord(Src[i]),2);
          Move(s[1],Result[EndLen+1],2);
          inc (EndLen,2);
          end;
  end;
SetLength(Result,EndLen);
end;


Зигмунд   (2005-01-30 11:59:00) [6]

Например: Привет! в %CF%F0%E8%E2%E5%F2%21


Наверх

Титульная страница Поиск, карта сайта Написать письмо