描述:
我写了一个ATL插件,在插件中,调用CBindStatusCallback类去下载数据,当传入的URL中含有中文字符时,就会下载失败,请问这是什么原因呢?我的工程师UNICODE的
BSTR bstr = m_csUrl.AllocSysString();//如果m_csUrl中含有中文字符时,就是下载失败
CMyBindStatusCallback<CMyCtrl>::Download(this, &CMyCtrl::OnData, bstr, m_spClientSite, m_bPathRelative);
请高手分析一下,有可能是什么原因造成的呢?字符转换的问题吗?该如何解决?谢谢!
解决方案1:
本来这答案就在网上就有。
解决方案2: 先查看一下是否是URL含有中文字符而下载失败的原因.
http://www.codeproject.com/useritems/URLEncoding.asp?df=100&forumid=439564&select=2250518#xx2250518xx
解决方案4:有中文的话,一般会URLEncoding的吧,转成类似%xx%xx%xx这样的
解决方案5: 失败返回的错误信息是什么?路径不对?
bstr打印一下是否为正确地中文名称
先查看一下是否是URL含有中文字符而下载失败的原因.
解决方案7: url使用utf-8编码一下