首页 > 代码库 > VC实现URL编解码
VC实现URL编解码
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实现URL编解码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。