VC++中实现URLEncode和URLDecode
VC++中实现URLEncode和URLDecode
1.Server.URLEncode在VC中的实现
- CString CMyFun::URLEncode(CString sIn)
- {
- //判断是否存在字符串
- if (sIn.IsEmpty() || sIn == _T(“”))
- return sIn;
- CString sOut;
- const int nLen = sIn.GetLength() + 1;
- register LPBYTE pOutTmp = NULL;
- LPBYTE pOutBuf = NULL;
- register LPBYTE pInTmp = NULL;
- LPBYTE pInBuf = (LPBYTE)sIn.GetBuffer(nLen);
- BYTE b = 0;
- //alloc out buffer
- pOutBuf = (LPBYTE)sOut.GetBuffer(nLen * 3 – 2);//new BYTE [nLen * 3];
- if (pOutBuf)
- {
- pInTmp = pInBuf;
- pOutTmp = pOutBuf;
- // do encoding
- while (*pInTmp)
- {
- if (isalnum(*pInTmp))
- *pOutTmp++ = *pInTmp;
- else
- if (isspace(*pInTmp))
- *pOutTmp++ = ‘+’;
- else
- {
- *pOutTmp++ = ‘%’;
- *pOutTmp++ = toHex(*pInTmp >> 4);
- *pOutTmp++ = toHex(*pInTmp % 16);
- }
- pInTmp++;
- }
- *pOutTmp = ‘\0’;
- //sOut=pOutBuf;
- //delete [] pOutBuf;
- sOut.ReleaseBuffer();
- }
- sIn.ReleaseBuffer();
- return sOut;
- }
复制代码
2.Server.URLDecode在VC中的实现
- CString CMyFun::URLDecode(CString sIn)
- {
- CString sOut;
- const int nLen = sIn.GetLength() + 1;
- register LPBYTE pOutTmp = NULL;
- LPBYTE pOutBuf = NULL;
- register LPBYTE pInTmp = NULL;
- LPBYTE pInBuf = (LPBYTE)sIn.GetBuffer(nLen);
- //alloc out buffer
- pOutBuf = (LPBYTE)sOut.GetBuffer(nLen);
- if (pOutBuf)
- {
- pInTmp = pInBuf;
- pOutTmp = pOutBuf;
- // do encoding
- while (*pInTmp)
- {
- if (‘%’ == *pInTmp)
- {
- pInTmp++;
- *pOutTmp++ = (toByte(*pInTmp) % 16 << 4) + toByte(*(pInTmp + 1)) % 16;//高4位+低4位
- pInTmp++;
- }
- else if (‘+’ == *pInTmp)
- *pOutTmp++ = ‘ ‘;
- else
- *pOutTmp++ = *pInTmp;
- pInTmp++;
- }
- *pOutTmp = ‘\0’;
- sOut.ReleaseBuffer();
- }
- sIn.ReleaseBuffer();
- return sOut;
- }
复制代码
- //
- inline BYTE CMyFun::toByte(const BYTE &x)
- {
- return x>57 ? x – 55 : x – 48;
- }
- //
- inline BYTE CMyFun::toHex(const BYTE &x)
- {
- return x > 9 ? x + 55 : x + 48;
- }
复制代码
下载说明:
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » VC++中实现URLEncode和URLDecode
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » VC++中实现URLEncode和URLDecode