zhaoyubian
驱动牛犊
驱动牛犊
  • 注册日期2002-03-16
  • 最后登录2003-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1164回复:5

问 mailporn 一个问题

楼主#
更多 发布于:2002-08-09 12:00
http://cn.google.yahoo.com/bin/query_cn?p=%bd%e2%b1%e0%c2%eb&u=&hc=0&hs=0

谁能找到其中的三个汉字是什么?

求教解码方法

[编辑 -  8/9/02 by  zhaoyubian]

[编辑 -  8/9/02 by  zhaoyubian]
zhaoyubian
驱动牛犊
驱动牛犊
  • 注册日期2002-03-16
  • 最后登录2003-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-09 12:13
我用下面方法解码有问题,

void DecodeGzipStr(char *str, int bufsize)
{

char* newString=new char[bufsize+1];
if(newString==NULL)return;

strcpy(newString,str);

char* sResult =new char[bufsize+1];
if(sResult==NULL)return;

*sResult=\'\\0\';

char ch,ch1,ch2;
for(int i=0;i<(int)strlen(newString);)
{
ch=*(newString+i);
if (ch==\'%\')
{
ch1=*(newString+i+1);
ch2=*(newString+i+2);
i++;i++;                       if (ch1>=\'A\') ch1=10+ch1-\'A\';
else
ch1=ch1-\'0\';

if (ch2>=\'A\') ch2=10+ch2-\'A\';
else
ch2=ch2-\'0\';

strcat(sResult,\"x\");
*(sResult+strlen(sResult)-1)=ch1*16+ch2;
i++;
}
else
{
i++;
strcat(sResult,\"x\");
*(sResult+strlen(sResult)-1)=ch;
}
}

bufsize=strlen(sResult);
strcpy(str,sResult);

delete sResult;
delete newString;
return;
}
mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-09 13:07
我不知你到底要解什么?你给出的这三个汉字只是普通的Unicode码而已,直接把%换成0x就行了,每两个字节就变成了一个汉字

你可能说的是IIS中的Unicode漏吗?

它的解码的算法基本如下:

%ss%hh -> (0xss - 0xc0) * 0x40 + 0xhh

只有当0x00<= hh < 0x40 时才是这样解码的
海人
mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-09 13:12
我看你的程序中好象是要把它转换成十进制,但为什么还有下面这句话:

strcat(sResult,\"x\");
海人
zhaoyubian
驱动牛犊
驱动牛犊
  • 注册日期2002-03-16
  • 最后登录2003-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-09 13:59
非常感谢 !
mailporn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2008-10-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-09 15:37
好象没有给分哦
海人
游客

返回顶部