根据
URL encode 与 URL decode 的C语言实现
代码自己重写的方便理解的代码
>可能有BUG<
建议还是按连接理解,再考虑是否合适本人不负任何后果,实际上以下代码可以
实现增删和自定编码成什么样子
建议还是按标准写
URL编码-百度百科
void URLencode(char* input, char *output,int inLen){
//注意output要比input大否则存在溢出 因为重编码一个字符要变三个
for(int i=0;i<inLen;i++){
switch(*input){
//重编码 格式 %16# 例如 + 在ASCII表中十六进制表示为0x2B 则编码为 %2B
//但空格比较特殊编码成 + 在(PHP下) 其他一般为%20 建议用在线工具验证以防出错
case '+': *output++='%';*output++='2';*output++='B'; break;
case ' ': *output++='+'; break; //空格会编码成+(在PHP)并不是写错 其他一般为%20
case '/': *output++='%';*output++='2';*output++='F'; break;
case '?': *output++='%';*output++='3';*output++='F'; break;
case '%': *output++='%';*output++='2';*output++='5'; break;
case '#': *output++='%';*output++='2';*output++='3'; break;
case '&': *output++='%';*output++='2';*output++='6'; break;
case '=': *output++='%';*output++='3';*output++='D'; break;
default: *output++ = *input; break;//不用重新编码
*input++;
因本人目前只用到这几种需要编码的,还有其他的并未加上,请自行添加!!!
因本人目前只用到这几种需要编码的,还有其他的并未加上,请自行添加!!!
因本人目前只用到这几种需要编码的,还有其他的并未加上,请自行添加!!!
在不同编译器下编码也会不同!!!
在不同编译器下编码也会不同!!!
在不同编译器下编码也会不同!!!
----------------------重要事情都说三遍-------------------------
测试结果如图: