• 大小: 3.09 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-05
  • 语言: 其他
  • 标签: vc  urlencode  urldecode  

资源简介

在网上找到的一些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


评论

共有 条评论