在对Http服务器提交请求时如果Url中含有中文字符,希望ASP页面接收到的仍然是正常的中文字符,而不会是乱码 做法就是把URL字符串Encode一下,以前就有人写过在VC中的实现见 http://blog.csdn.net/zhengyun_ustc/archive/2002/05/20/12654.aspx
但是它的只能在VC中运行,有一定的限制,因此我改写了一下.代码如下:
inline BYTE toHex(const BYTE &x)
{
return x>9?x+55:x+48;
}
UrlEncode(LPBYTE in,LPBYTE out)
{
if(out)
{
while (*in)
{
if(isalnum(*in))
*out++ = *in;
else
if(isspace(*in))
*out++ = '+';
else
{
*out++ = '%';
*out++ = toHex(*in>>4);
*out++ = toHex(*in%16);
}
in++;
}
*out = '\0';
}
return 1;
}
有什么Bug还大家指正.
本文地址:http://com.8s8s.com/it/it25552.htm