ATL插件 URL中含有中文字符问题

hedengxiang 2012-02-23 04:16:47
我写了一个ATL插件,在插件中,调用CBindStatusCallback类去下载数据,当传入的URL中含有中文字符时,就会下载失败,请问这是什么原因呢?我的工程师UNICODE的

BSTR bstr = m_csUrl.AllocSysString();//如果m_csUrl中含有中文字符时,就是下载失败
CMyBindStatusCallback<CMyCtrl>::Download(this, &CMyCtrl::OnData, bstr, m_spClientSite, m_bPathRelative);

请高手分析一下,有可能是什么原因造成的呢?字符转换的问题吗?该如何解决?谢谢!
...全文
90 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2012-02-25
  • 打赏
  • 举报
回复
本来这答案就在网上就有。
hedengxiang 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oyljerry 的回复:]

先查看一下是否是URL含有中文字符而下载失败的原因.
[/Quote]

这一点是百分百肯定的,因为我是链接自己的服务器,文件名改成含中文的就没法下载。
hedengxiang 2012-02-24
  • 打赏
  • 举报
回复
越来越让我觉得,csdn上的人都是随便帮你找个东西贴进来而已,这样宁可别回答!
oyljerry 2012-02-24
  • 打赏
  • 举报
回复
先查看一下是否是URL含有中文字符而下载失败的原因.
hedengxiang 2012-02-24
  • 打赏
  • 举报
回复

CBindStatusCallback::Download函数原型为:
static HRESULT Download(
T* pT,
ATL_PDATAAVAILABLE pFunc,
BSTR bstrURL,
IUnknown* pUnkContainer = NULL,
BOOL bRelative = FALSE
);

BSTR bstrURL这个参数在unicode工程下接收的是unicode编码,这个应该是没错儿吧?如果将它转换成utf-8,那传参的时候不就传不了了吗?

哪位大侠出来帮个忙呗~~
wyx100 2012-02-24
  • 打赏
  • 举报
回复
先查看一下是否是URL含有中文字符而下载失败的原因.
oyljerry 2012-02-24
  • 打赏
  • 举报
回复
http://www.codeproject.com/useritems/URLEncoding.asp?df=100&forumid=439564&select=2250518#xx2250518xx
hedengxiang 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]

有中文的话,一般会URLEncoding的吧,转成类似%xx%xx%xx这样的
[/Quote]

嗯,那请问下,有那些API可以进行这样的编码呢?谢谢!
Eleven 2012-02-24
  • 打赏
  • 举报
回复
有中文的话,一般会URLEncoding的吧,转成类似%xx%xx%xx这样的
oyljerry 2012-02-24
  • 打赏
  • 举报
回复
失败返回的错误信息是什么?路径不对?
bstr打印一下是否为正确地中文名称
hedengxiang 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 akirya 的回复:]

url使用utf-8编码一下
[/Quote]
谢谢
要怎么转呢?
  • 打赏
  • 举报
回复
url使用utf-8编码一下

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧