URL编码
来源:互联网 发布:windows toolkit下载 编辑:程序博客网 时间:2024/05/22 23:59
#pragma once
class CUrlCode
{
public:
CUrlCode(void){}
~CUrlCode(void){}
char dec2hexChar(short int n)
{
if ( 0 <= n && n <= 9 ) {
return char( short('0') + n );
} else if ( 10 <= n && n <= 15 ) {
return char( short('A') + n - 10 );
} else {
return char(0);
}
}
short int hexChar2dec(char c)
{
if ( '0'<=c && c<='9' ) {
return short(c-'0');
} else if ( 'a'<=c && c<='f' ) {
return ( short(c-'a') + 10 );
} else if ( 'A'<=c && c<='F' ) {
return ( short(c-'A') + 10 );
} else {
return -1;
}
}
string escapeURL(const string &URL)
{
string result = "";
for ( unsigned int i=0; i<URL.size(); i++ )
{
char c = URL[i];
if (
( '0'<=c && c<='9' ) ||
( 'a'<=c && c<='z' ) ||
( 'A'<=c && c<='Z' ) ||
c=='/' || c=='.'
)
{
result += c;
}
//add by yxx 2012-06-06
/*else if (
c == '!' ||
c == '@' ||
c == '#' ||
c == '$' ||
c == '%' ||
c == '^' ||
c == '&' ||
c == '*' ||
c == '(' ||
c == ')' ||
c == '-' ||
c == '_' ||
c == '+' ||
c == '=' ||
c == ',' ||
c == '"' ||
c == ';' ||
c == ':' ||
c == '<' ||
c == '>' ||
c == '?')
{
result += c;
}*/
else
{
int j = (short int)c;
if ( j < 0 )
{
j += 256;
}
int i1, i0;
i1 = j / 16;
i0 = j - i1*16;
result += '%';
result += dec2hexChar(i1);
result += dec2hexChar(i0);
}
}
return result;
}
std::string deescapeURL(const std::string &URL) {
string result = "";
for ( unsigned int i=0; i<URL.size(); i++ ) {
char c = URL[i];
if ( c != '%' ) {
result += c;
} else {
char c1 = URL[++i];
char c0 = URL[++i];
int num = 0;
num += hexChar2dec(c1) * 16 + hexChar2dec(c0);
result += char(num);
}
}
return result;
}
};
class CUrlCode
{
public:
CUrlCode(void){}
~CUrlCode(void){}
char dec2hexChar(short int n)
{
if ( 0 <= n && n <= 9 ) {
return char( short('0') + n );
} else if ( 10 <= n && n <= 15 ) {
return char( short('A') + n - 10 );
} else {
return char(0);
}
}
short int hexChar2dec(char c)
{
if ( '0'<=c && c<='9' ) {
return short(c-'0');
} else if ( 'a'<=c && c<='f' ) {
return ( short(c-'a') + 10 );
} else if ( 'A'<=c && c<='F' ) {
return ( short(c-'A') + 10 );
} else {
return -1;
}
}
string escapeURL(const string &URL)
{
string result = "";
for ( unsigned int i=0; i<URL.size(); i++ )
{
char c = URL[i];
if (
( '0'<=c && c<='9' ) ||
( 'a'<=c && c<='z' ) ||
( 'A'<=c && c<='Z' ) ||
c=='/' || c=='.'
)
{
result += c;
}
//add by yxx 2012-06-06
/*else if (
c == '!' ||
c == '@' ||
c == '#' ||
c == '$' ||
c == '%' ||
c == '^' ||
c == '&' ||
c == '*' ||
c == '(' ||
c == ')' ||
c == '-' ||
c == '_' ||
c == '+' ||
c == '=' ||
c == ',' ||
c == '"' ||
c == ';' ||
c == ':' ||
c == '<' ||
c == '>' ||
c == '?')
{
result += c;
}*/
else
{
int j = (short int)c;
if ( j < 0 )
{
j += 256;
}
int i1, i0;
i1 = j / 16;
i0 = j - i1*16;
result += '%';
result += dec2hexChar(i1);
result += dec2hexChar(i0);
}
}
return result;
}
std::string deescapeURL(const std::string &URL) {
string result = "";
for ( unsigned int i=0; i<URL.size(); i++ ) {
char c = URL[i];
if ( c != '%' ) {
result += c;
} else {
char c1 = URL[++i];
char c0 = URL[++i];
int num = 0;
num += hexChar2dec(c1) * 16 + hexChar2dec(c0);
result += char(num);
}
}
return result;
}
};
- url编码
- URL编码
- URL编码
- URL编码
- url 编码
- URL编码
- URL编码
- URL编码
- Url编码
- URL编码
- URL编码
- URL编码
- URL编码
- url编码
- url编码
- URL编码
- url编码
- url编码
- windows字符编码转换
- 用wubi安装ubuntu 10
- STL 适配器
- jqGrid与Struts2的结合应用(三) —— 使用自定义表单对话框编辑Grid数据
- centOS通过xen虚拟机安装XP系统的方法
- URL编码
- 电影 暂告安全 Safe
- 《乔布斯传》圈点(3)
- Github通过代理获取代码(Windows)
- 转 在eclipse中反编译并查看jar包的class文件,批量反编译
- 轻松实现Word在线编辑
- Http下载-Qt4自带例子
- Unity3D 中 用quaternion 来对一个坐标点进行旋转的初步体会
- jqGrid与Struts2的结合应用(四) —— 丰富多彩的Pager Bar