在网络传输数据的时候,如果存在中文字符,不能直接进行网络传输,需要采用标准的URLEncode方法来进行传输,下面是采用了标
准SDK的方法来实现这样的功能
#define TOHEX(x) ((x)>9 ? (x)+55 : (x)+48)
void URLEncode(char* szIn, char** pOut)
{
int nInLenth = strlen(szIn);
int nFlag = 0;
BYTE byte;
*pOut = new char[nInLenth*3];
char* szOut = *pOut;
for (int i=0; i<nInLenth; i++)
{
byte = szIn[i];
if (isalnum(byte))
{
szOut[nFlag++] = byte;
}
else
{
if (isspace(byte))
{
szOut[nFlag++] = '+';
}
else
{
szOut[nFlag++] = '%';
szOut[nFlag++] = TOHEX(byte>>4);
szOut[nFlag++] = TOHEX(byte%16);
}
}
}
szOut[nFlag] = '/0';
}