在网络上搜索了一些,但是不能用http://www.csdn.net/develop/read_article.asp?id=19205
也不能用,害的我还麻烦了1天时间急!

解决方案 »

  1.   

    I have got the decode for quoted_printable code source, but pity i have no encode source, so paste my codes here, and hope you will get the encode earlier, and don't forget tell me :)#define SKIP '\202'const char hexmap[] = {
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
          0 ,    1 ,    2 ,    3 ,    4 ,    5 ,    6 ,    7 ,
          8 ,    9 ,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,    10,    11,    12,    13,    14,    15,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,
         SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP,   SKIP
    };char* Decode_quoted_printable(char *input)
    {
      char *s = input;
      char *finalresult = (char*)calloc(strlen(input) + sizeof(char), sizeof(char));
      char *result = finalresult;
      while (*s != '\0') //loop through the entire string...
      {
        if (*s == '=') //woops, needs to be decoded...
        {
          for (int i = 0; i < 3; i++) //is s more than 3 chars long...
          {
            if (s[i] == '\0')
            {
              //error in the decoding...
              //ErrorCode = 1;
              return finalresult;
            }
          }
          char mid[3];
          s++; //move past the "="
          //let's put the hex part into mid...
          bool ok = true;
          for (i = 0; i < 2; i++)
          {
            if (hexmap[s[i]] == SKIP)
            {
              //we have an error, or a linebreak, in the encoding...
              ok = false;
              if (s[i] == '\r' && s[i + 1] == '\n')
              {
                s += 2;
                //*(result++) = '\r';
                //*(result++) = '\n';
                break;
              }
              else
              {
                //we have an error in the encoding...
                //ErrorCode = 1;
                //s--;
              }
            }
            mid[i] = s[i];
          }
          //now we just have to convert the hex string to an char...
          if (ok)
          {
            s += 2;
            int m = hexmap[mid[0]];
            m <<= 4;
            m |= hexmap[mid[1]];
            *(result++) = m;
          }
        }
        else
        {
          if (*s != '\0') *(result++) = *(s++);
        }
      }  return finalresult;
    }