“浏览栏上面传变量的时候汉字都译成"%DF%GT%GR%GH%HY%HU" 类似,我怎么把这样的字串变成汉字大虾救命~~~

解决方案 »

  1.   

    应该是十六进制的吧,哪里来的G/T/R/H/Y/U字符,不可能的吧
    例如:%E6%B1%89%E5%AD%97%E6%90%9C%E7%B4%A2
    char sz[MAX_PATH] = { 0xe6, 0xb1, 0x89, 0x35, 0xad, 0x97, 0xe6, 0x90, 0x9c, 0xe7, 0xb4, 0xa2, 0x00, 0x00};
    printf("%s", sz);
      

  2.   

    楼主,你的字符串是自己乱写的吧?是不是这样的"%D0%A1%B7%E8%D7%D3",如果是下面的代码就可以解析,必须是16进制的字符 ^o^//把十六进制的字符转化成数字
    int HexToInt(char* pToken)
    {
    UINT nIndex;
    int nDec[2];
    //转化字符成ASCII
    for(nIndex = 0;nIndex < 2;nIndex ++)
    {
    nDec[nIndex] = pToken[nIndex];
    } //转化小写的ASCII成大写的ASCII a->A
    for(nIndex = 0;nIndex < 2;nIndex ++)
    {
    if(nDec[nIndex] > 97)
    {
    nDec[nIndex] -= 32;
    }
    } //得到ASCII的真正数值
    for(nIndex = 0;nIndex < 2;nIndex ++)
    {
    //如果是A-F
    if(nDec[nIndex] > 57)
    {
    nDec[nIndex] -= 55;
    }
    //如果是0-9
    else
    {
    nDec[nIndex] -= 48;
    }
    } return nDec[0]*16 + nDec[1];
    }void test() 
    {
    char szText[] = "%D0%A1%B7%E8%D7%D3";
    char szDelimit[]   = "%";
    char *pToken = NULL;
    UINT nBufferLen = strlen(szText)/3 + 2;
    char *pBuffer = new char[nBufferLen]; pToken = strtok(szText,szDelimit);
    for(UINT nIndex = 0;pToken != NULL;nIndex++)
    {
    pBuffer[nIndex] = HexToInt(pToken);
    pToken = strtok(NULL,szDelimit);
    }
    pBuffer[nIndex+1] = '\0'; AfxMessageBox(pBuffer); delete[] pBuffer;
    }
      

  3.   

    在char szText[] 写入那些字符串,pBuffer就会解析成中文 ^o^
      

  4.   

    呵呵,如果繁体的话,那些字符串是不一样的啊.比如:
    简体版小疯子"%D0%A1%B7%E8%D7%D3"
    繁体版小瘋子"%D0%A1%AF%82%D7%D3"^o^
      

  5.   

    没有呀~ 我把字贴出来
    %EFh%C3%EC%D6%AE%C2%C3
      

  6.   

    还有字串 "%EFL%C1%F7%C8%FD%87%F8"
    哇,真的有L~~  怎么办?
      

  7.   

    飄渺之旅 = %BF%7E%C3%EC%D6%AE%C2%C3
    風流三國 = %EF%4C%C1%F7%C8%FD%87%F8而你给出的字符串除第一个以外其他的都一样,很明显是经过加密或者加了一个校检的.^o^
      

  8.   

    不对呀~~  有些词只有2位  如"%B5%C0%BE%89%C8%E5%CF%C9"  是道緣儒仙  这个结果正确
      

  9.   

    方不方便把那个网站的地址给我?我LOOK LOOK
      

  10.   

    最好的方法是将字符都设置成2个字节(无论中英文),使用unnicode字符集,每次取2个字节
      

  11.   

    那个是UTF-8格式的网址,IMultiLanguage可以转换各种编码的字符串。