URL经常需要进行编码,ATL提供了现成,今天才发现!(我好愚昧HOHO)

有朋友会说ms写的东西,你只不过是找到了还要写,我写给自己,也想一些朋友再别想我这么傻!通常的编码一般都有些好的api,如果我们拿来直接使用,既方便还安全省事!

最近经常碰到编码的问题,可是找这样的api不好找,前两天找一个,今天又在atl中找到一个,试了一下都可以成功实现编码!

1、 #include <shlwapi.h>

HRESULT UrlEscape(      
    LPCTSTR pszURL,     LPTSTR pszEscaped,     LPDWORD pcchEscaped,     DWORD dwFlags );
eg:
_bstr_t bstrOut = SysAllocStringLen(L"",2048);
   DWORD len = 2048;
   if(UrlEscape(bstrIn,bstrOut,&len,URL_ESCAPE_PERCENT))   //编码
   {
    bsSite += bstrOut.GetBSTR();
   }
详细请看:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/shellcc/platform/shell/reference/shlwapi/path/urlescape.htm
2、#include <atlutil.h>
inline BOOL AtlEscapeUrl(
   LPCSTR szStringIn,
   LPSTR szStringOut,
   DWORD* pdwStrLen,
   DWORD dwMaxLength,
   DWORD dwFlags = 0 
) throw( );
eg:

_bstr_t bstrOut = SysAllocStringLen(L"",2048);
   DWORD len = 2048;
   if(AtlEscapeUrl(bstrIn,bstrOut,&len,2048,ATL_URL_ENCODE_PERCENT))   //编码
   {
    bsSite += bstrOut.GetBSTR();
   }

从上面的代码基本上一样,根据个人喜好使用。

有兴趣的朋友可以去看看 :

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vclib/html/vclrfatlserverfunctions.htm

里面列出了atl提供编码的所有函数,其中有utf8的编码转换,使用起来很方便。以前有个同事问我utf8的转换如何用写,但是我用几个api倒了几次才转好,现在有了AtlUnicodeToUTF8我们不用再那么麻烦了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值