资源简介
在网上找到的一些url编码和解码的代码,自己整理了一下,拿来就可是用。
代码片段和文件信息
/*****************************************************************************
Module : URLEncode.cpp
Notices: Written 2002 by ChandraSekar Vuppalapati
Description: CPP URL Encoder
*****************************************************************************/
#define _CRTDBG_MAP_ALLOC
#include “stdafx.h“
#include
//#include
//#include
//#include
//#include
//#include
//#include
#include “URLEncode.h“
#define MAX_BUFFER_SIZE 4096
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//#include
//#include
// HEX Values array
char hexVals[16] = {‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘};
// UNSAFE String
string CURLEncode::strUnsafeString = “\“<>%\\^[]‘+$@:;/!#?=&“;
// PURPOSE OF THIS FUNCTION IS TO CONVERT A GIVEN CHAR TO URL HEX FORM
string CURLEncode::convert(char val)
{
string strRet;
strRet += “%“;
strRet += decToHex(val 16);
return strRet;
}
// THIS IS A HELPER FUNCTION.
// PURPOSE OF THIS FUNCTION IS TO GENERATE A HEX REPRESENTATION OF GIVEN CHARACTER
string CURLEncode::decToHex(char num int radix)
{
int temp=0;
string strTmp;
int num_char;
num_char = (int) num;
// ISO-8859-1
// IF THE IF LOOP IS COMMENTED THE CODE WILL FAIL TO GENERATE A
// PROPER URL ENCODE FOR THE CHARACTERS WHOSE RANGE IN 127-255(DECIMAL)
if (num_char < 0)
num_char = 256 + num_char;
while (num_char >= radix)
{
temp = num_char % radix;
double l = num_char / radix;
num_char = (int)floor(l);
strTmp = hexVals[temp];
}
strTmp += hexVals[num_char];
if(strTmp.length() < 2)
{
strTmp += ‘0‘;
}
string strdecToHex(strTmp.rbegin()strTmp.rend());
// Reverse the String
//strdecToHex.MakeReverse();
return strdecToHex;
}
// PURPOSE OF THIS FUNCTION IS TO CHECK TO SEE IF A CHAR IS URL UNSAFE.
// TRUE = UNSAFE FALSE = SAFE
bool CURLEncode::isUnsafe(char compareChar)
{
bool bcharfound = false;
char tmpsafeChar;
int m_strLen = 0;
m_strLen = strUnsafeString.length();
for(int ichar_pos = 0; ichar_pos < m_strLen ;ichar_pos++)
{
tmpsafeChar = strUnsafeString[ichar_pos];
if(tmpsafeChar == compareChar)
{
bcharfound = true;
break;
}
}
int char_ascii_value = 0;
//char_ascii_value = __toascii(compareChar);
char_ascii_value = (int) compareChar;
if(bcharfound == false && char_ascii_value > 32 && char_ascii_value < 123)
{
return false;
}
//// found no unsafe chars return false
//else
//{
// return true;
//}
//
return true;
}
// PURPOSE OF THIS FUNCTION IS TO CONVERT A STRING
// TO URL ENCODE FORM.
string CURLEncode::URLEncode_GBK(const char * szUrl)
{
int ichar_pos;
//string Encode;
string Encoded;
int m_length;
int ascii_value;
//Encode = const char * szUrl;
m_length = strlen(szUrl);
for(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7014 2012-05-10 13:42 URLEncode.cpp
文件 825 2012-05-10 11:15 URLEncode.h
----------- --------- ---------- ----- ----
7839 2
相关资源
- vc编写中国象棋详细源码注释并附有视
- VC 围棋源代码
- 用VC 编写的基于SNMP的路由器拓扑程序
- vc利用MFC底层开发的二维GIS管理软件,
- 兰勃托地图投影VC源码
- 清华大学郑莉C 语言程序设计课件
- 一个基于MFC的GridCtrl,提供类似Excel的
- MFC绘图小软件源代码(可当VC大作业用
- VC 实现三维旋转(源码)
- 加班网上管理 单位
- VC 6 Modbus RTU测试程序
- VC 6.0 MFC做画图软件
- ping 程序 C语言
- 基于MVC模式的校园BBS系统的设计与实
- MVC模式编写的音乐网站
- 哲学家进餐问题 算法 vc源代码 测试通
- VC数字图像处理课程设计
- 关于角点检测算法HarrisForstner经典算子
- 操作系统实验综合设计【附代码】
- VC 编程实现活动主机扫描源代码
- MVC模式实现的计算器
- 在线考试系统VC (MFC)
- IP数据包流量监控VC 源码
- VC 6.0 工程更名器
- CJLibrary Version 6.09
- vc编写的通达信插件选股
- 简单的一个小程序(是送给心仪的女
- VC 使用GDI 矢量绘图软件源代码
- 一个可以由SVCHost.exe服务调用的dll模块
- VC 实现鼠标画矩形和绘制直线
评论
共有 条评论