作者:admin 来源: 日期:2015/1/21 21:05:24 人气: 标签:
function HTTPEncode(const AStr: String): String;const NoConversion = ['A'..'Z','a'..'z','*','@','.','_','-','0'..'9','$','!','''','(',')'];var Sp, Rp: PAnsiChar;begin SetLength(Result, Length(AStr) * 3); Sp:= PAnsiChar(AStr); Rp:= PAnsiChar(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 - PAnsiChar(Result));end;function URLEncode(const Url: String): String;begin Result:= HttpEncode(UTF8Encode(Url));end;