C/C++ - URL编码(符号自定义可增减)

根据 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++;

因本人目前只用到这几种需要编码的,还有其他的并未加上,请自行添加!!!
因本人目前只用到这几种需要编码的,还有其他的并未加上,请自行添加!!!
因本人目前只用到这几种需要编码的,还有其他的并未加上,请自行添加!!!

在不同编译器下编码也会不同!!!
在不同编译器下编码也会不同!!!
在不同编译器下编码也会不同!!!

----------------------重要事情都说三遍-------------------------

测试结果如图: