我用BASE64编码的数据通过网页POST过来后发现/ = 等符号被替换为了%0D %3D 等数,我该如何把他们转换回来?

解决方案 »

  1.   

    void unescape_url(char *url)
    {
      register int x,y;  for (x=0,y=0; url[y]; ++x,++y) {
        if((url[x] = url[y]) == '%') {
          url[x] = x2c(&url[y+1]);
          y+=2;
        }
      }
      url[x] = '\0';
    }
    /* x2c() and unescape_url() stolen from NCSA code */
    char x2c(char *what)
    {
      register char digit;  digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
      digit *= 16;
      digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));
      return(digit);
    }