URL转码问题
用VC 提交POST表单,抓包发现IE提交如下:
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKMTQ0ODcyNTY4OGRkIHaxARP4DJqueJMndFwyXWgtnKTFFd8%2FKHkty7%2BzGUM%3D&__VIEWSTATEGENERATOR=C2EE9ABB&__EVENTVALIDATION=%2FwEWBQK97M73DwKk4qryCALG8eCkDwKC3IeGDALF97uMC%2FCY%2F7BXbtwX1n6BsK9Ud3mpLWUU6NfW6nH7gL%2Bmr8N%2F&txtSfzmhm=410504197612032013&txtUserPwd=123456&btnLogin=%E7%99%BB%E5%BD%95
我的程序URL转码后如下:
%5F%5FEVENTTARGET%3D%26%5F%5FEVENTVALIDATION%3D%2FwEWBQK97M73DwKk4qryCALG8eCkDwKC3IeGDALF97uMC%2FCY%2F7BXbtwX1n6BsK9Ud3mpLWUU6NfW6nH7gL%2Bmr8N%2F%26%5F%5FVIEWSTATE%3D%2FwEPDwUKMTQ0ODcyNTY4OGRkIHaxARP4DJqueJMndFwyXWgtnKTFFd8%2FKHkty7%2BzGUM%3D%26%5F%5FVIEWSTATEGENERATOR%3DC2EE9ABB%26txtSfzmhm%3D410504197612032013%26txtUserPwd%3D123456%26btnLogin%3D%E7%99%BB%E5%BD%95
都是URL转码怎么不一样啊,我用的是UTF8编码。转码函数如下:
string strCoding::UrlUTF8(string str)
{
string tt=str;
string dd;
size_t len=tt.length();
char ttb[2];
for (size_t i=0;i<len;i++)
{
if(isalnum((BYTE)tt.at(i)))
{
char tempbuff[2]={0};
sprintf(tempbuff,"%c",(BYTE)tt.at(i));
dd.append(tempbuff);
}
else if (isspace((BYTE)tt.at(i)))
{
dd.append("+");
}
else
{
char tempbuff[4];
sprintf(tempbuff,"%%%X%X",((BYTE)tt.at(i)) >>4,((BYTE)tt.at(i)) %16);
dd.append(tempbuff);
}
}
return dd;
}
希望高手给看一下。