我写了一个ATL插件,在插件中,调用CBindStatusCallback类去下载数据,当传入的URL中含有中文字符时,就会下载失败,请问这是什么原因呢?我的工程师UNICODE的BSTR bstr = m_csUrl.AllocSysString();//如果m_csUrl中含有中文字符时,就是下载失败
CMyBindStatusCallback<CMyCtrl>::Download(this, &CMyCtrl::OnData, bstr, m_spClientSite, m_bPathRelative);请高手分析一下,有可能是什么原因造成的呢?字符转换的问题吗?该如何解决?谢谢!
CMyBindStatusCallback<CMyCtrl>::Download(this, &CMyCtrl::OnData, bstr, m_spClientSite, m_bPathRelative);请高手分析一下,有可能是什么原因造成的呢?字符转换的问题吗?该如何解决?谢谢!
CBindStatusCallback::Download函数原型为:
static HRESULT Download(
T* pT,
ATL_PDATAAVAILABLE pFunc,
BSTR bstrURL,
IUnknown* pUnkContainer = NULL,
BOOL bRelative = FALSE
);BSTR bstrURL这个参数在unicode工程下接收的是unicode编码,这个应该是没错儿吧?如果将它转换成utf-8,那传参的时候不就传不了了吗?哪位大侠出来帮个忙呗~~
bstr打印一下是否为正确地中文名称
嗯,那请问下,有那些API可以进行这样的编码呢?谢谢!