[原]VC++ URL编码的解码
2014-02-25 17:49
387 查看
bool DecodeUrl(char *Src, char *url, int MaxLen) { if(NULL == url || NULL == Src) { return false; } if(MaxLen == 0) { return false; } char *p = Src; // 用来循环 int i = 0; // i用来控制url数组 /* 临时保存url编码的数据 例如: %1A%2B%3C */ char t = '\0'; while(*p != '\0' && MaxLen--) { if(*p == 0x25) // 0x25 = '%' { /* 以下是十六进制数中常出现的大写字母,小写字母,数字的判断 */ if(p[1] >= 'A' && p[1] <= 'Z') // 大写字母 { t = p[1] - 'A' + 10; // A = 10,下同 } else if(p[1] >= 'a' && p[1] <= 'z') // 小写字母 { t = p[1] - 'a' + 10; } else if(p[1] >= '0' && p[1] <= '9') // 数字 { t = p[1] - '0'; } t *= 16; // 将数放到十位上去 if(p[2] >= 'A' && p[2] <= 'Z') // 大写字母 { t += p[2] - 'A' + 10; } else if(p[2] >= 'a' && p[2] <= 'z') // 小写字母 { t += p[2] - 'a' + 10; } else if(p[2] >= '0' && p[2] <= '9') // 数字 { t += p[2] - '0'; } // 到此合成了一个十六进制数 url[i] = t; p += 3, i++; } else { // 没有被url编码的数据 // '+'特殊处理.它相当于一个空格 if(*p != '+') { url[i] = *p; } else { url[i] = 0x20; } i++; p++; } } url[i] = '\0'; // 结束符 return true; }
相关文章推荐
- VC++(unicode)实现URLDecode函数,对URl编码的字符串进行解码
- Web开发:URL编码与解码
- java web url编码与解码--中文乱码和特殊字符转义问题
- javascript的URL编码和解码
- C#URL编码解码演示代码
- URL编码与解码
- [导入]JavaScript中的URL编码解码方法
- URL编码解码原理及演示(Java演示)
- php url编码与解码(加/解密)
- BASE64编码和解码(VC源代码) 并 内存加载 CImage 图像
- Java的Url编码和解码
- asp的url编码和解码
- URL编码与解码
- javascript 的URL编码和解码
- iOS URL编码与解码
- Web开发须知:URL编码与解码
- 详解JavaScript中的Url编码/解码,表单提交中网址编码
- 使用python对url编码解码 (转)
- URL编码 百分号编码和解码 URLEncoder和URLDecoder的大致实现原理
- ASP.NET中的URL编码解码(转)