5,391
社区成员
发帖
与我相关
我的任务
分享
function TForm1.HTTPEncode(const AStr : string): string;
const
NoConversion = ['A'..'Z','a'..'z','*','@','.','_','-'];
var
Sp, Rp : PChar;
begin
SetLength(Result, Length(AStr)*3);
Sp := PChar(AStr);
Rp := PChar(Result);
while Sp^ <> #0 do
begin
if Sp^ in NoConversion then
Rp^ := Sp^
else if Sp^ = ' 'then
Rp^ := '+'
else
begin
FormatBuf(Rp^, 3, '%%%.2x ', 6, [Ord(Sp^)]);
Inc(Rp, 2);
end;
Inc(Rp);
Inc(Sp);
end;
SetLength(Result, Rp - PChar(Result));
end;
uses
IdURI;
begin
str := TIdURI.URLEncode(url);
str := TIdURI.URLDecode(url);
end;