网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.利用Delphi开发旅游景点微机售票.
.关于中文折行及相关问题的解决方.
.COM/DCOM中如何传递数组:.
.动态更新DBGrid的颜色.
.delphi7从入门到精通之四.
.Delphi中对象解除技巧.
.字存为字符图片.
.使用Delphi获取系列信息.
.如何在启动机器时自动运行adsl拨.
.delphi函数参考手册.
.金额大写转换.
.delphi多线程程序示例(与.net一样.
.OOP程序设计实践.
.关于WEB应用程序的打印组件开发初.
.修改的一个导出DataSet到xls的单.
.TStrings的AddObject方法应用.
.Delphi中的线程类.
.关于程序只运行一次的问题.
.从Internet时间服务器获取标准格.
.XP/2003下开放3389最简单的方法.

url编码与解码工具附代码

发表日期:2006-2-4


url编码与解码工具附代码


url编码与解码工具附代码,代码很简单,做sql注入分析时经常用到,但一时又找不到,就写了一个


代码部分:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, HTTPApp;

type
TForm1 = class(TForm)
  Button1: TButton;
  Memo1: TMemo;
  Memo2: TMemo;
  Button2: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
private
  { Private declarations }
  function URLEncode(const msg : String) : String;
  function GetMemoText(memo:TMemo):string;
public
  { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
ss: string;
begin
ss := GetMemoText(Memo1);
Memo1.Text :=ss;
Memo2.Clear;
for i := 1 to Length(ss) do
begin
  Memo2.Text := Memo2.Text + '%' + IntToHex(Ord(ss), 2);
end;
end;

function TForm1.URLEncode(const msg: String): String;
var
  I : Integer;
begin
  Result := '';
  for I := 1 to Length(msg) do begin
    if msg[I] = ' ' then
        Result := Result + '+'
    else if msg[I] in ['a'..'z', 'A'..'Z', '0'..'9'] then
        Result := Result + msg[I]
    else
        Result := Result + '%' + IntToHex(ord(msg[I]), 2);
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var ss:string;
begin
Memo2.Clear;
ss :=GetMemoText(Memo1);
Memo1.Text :=ss;
Memo2.Text :=HTTPDecode(trim(ss));
end;

function TForm1.GetMemoText(memo: TMemo): string;
var i:integer;
begin
for i:=0 to memo.Lines.Count-1 do
begin
  Result :=Result + trim(memo.Lines);
end;
end;

end.
上一篇:用Timer实现定时运行 人气:6414
下一篇:如何使用Delphi设计强大的服务器程序 人气:4193
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐