安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 编程茶楼 > DelPhi > [Delphi]urlencode转换

[Delphi]urlencode转换

时间:2015-07-20来源:未知 作者:安云网点击:
[Delphi]urlencode转换 function URLDecode ( const S: string ): string ; var Idx: Integer ; Hex: string ; Code: Integer ; begin Result:= ; Idx:= 1 ; while Idx=Length(S) do begin case S[Idx] of % : begin if Idx=Length(S)- 2 then begin Hex:=S[Idx+ 1 ]+S[Idx+ 2
[Delphi]urlencode转换  

function URLDecode(const S: string): string;
var
  Idx: Integer;
  Hex: string
  Code: Integer;
begin  
  Result := '';
  Idx := 1;
  while Idx <= Length(S) do
  begin
    case S[Idx] of
      '%':
      begin
        if Idx <= Length(S) - 2 then
        begin
          Hex := S[Idx+1] + S[Idx+2];
          Code := SysUtils.StrToIntDef('$' + Hex, -1);
          Inc(Idx, 2);
        end
        else
          Code := -1;
         if Code = -1 then
          raise SysUtils.EConvertError.Create(
            'Invalid hex digit in URL'
          );
        Result := Result + Chr(Code);
      end;
      '+':
        Result := Result + ' '
      else
        Result := Result + S[Idx];
    end;
    Inc(Idx);
  end;
end;
  
function URLEncode(const S: stringconst InQueryString: Boolean): string;
var
  Idx: Integer
begin
  Result := '';
  for Idx := 1 to Length(S) do
  begin
    case S[Idx] of
      'A'..'Z''a'..'z''0'..'9''-''_''.':
        Result := Result + S[Idx];
      ' ':
        if InQueryString then
          Result := Result + '+'
        else
          Result := Result + '%20';
      else
        Result := Result + '%' + SysUtils.IntToHex(Ord(S[Idx]), 2);
    end;
  end;
end;

//copyright AnYun.ORG
//本文来自安云网

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
  • 上一篇:没有了
  • 下一篇:没有了
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容