请教个URL编码问题

hedengxiang 2012-02-24 04:38:34
在一个unicode工程下,想对含有中文字符的URL进行UTF编码,请问下,有什么API可以用吗?或者有谁写过这样的函数呢?请高手知道下,谢谢!

例如:
将“http://www.baidu.com/卡_原味營養乳片.pdf” 编码成 “http://www.baidu.com/%E5%8D%A1_%E5%8E%9F%E5%91%B3%E7%87%9F%E9%A4%8A%E4%B9%B3%E7%89%87.pdf”

PS:这两个字符串都是宽字符型的字符串。
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
罗平 2012-02-25
  • 打赏
  • 举报
回复
VC URLEncode,1楼的参考是正确的。
Eleven 2012-02-25
  • 打赏
  • 举报
回复
char szText[] = "http://www.baidu.com/¿¨_ԭζ IðBÈéƬ.pdf";
-->
char szText[] = "http://www.baidu.com/卡_原味營養乳片.pdf";
Eleven 2012-02-25
  • 打赏
  • 举报
回复

CString strText(_T(""));
CString strTemp(_T(""));
char szText[] = "http://www.baidu.com/¿¨_ԭζ IðBÈéƬ.pdf";
wchar_t* szBuf = NULL;
int nLen =MultiByteToWideChar(CP_ACP, 0, szText, -1, szBuf, 0);
szBuf = new wchar_t[nLen];
memset(szBuf, 0, nLen * sizeof(wchar_t));
MultiByteToWideChar(CP_ACP, 0, szText, -1, szBuf, nLen);

char* buf = NULL;
nLen =WideCharToMultiByte(CP_UTF8, 0, szBuf, -1, buf, 0, NULL, NULL);
buf = new char[nLen];
memset(buf, 0, nLen * sizeof(char));
WideCharToMultiByte(CP_UTF8, 0, szBuf, -1, buf, nLen, NULL, NULL);
char* p = buf;
while(*p)
{
BYTE ch = *p;
if(IsDBCSLeadByte(ch))
{
strTemp.Format(_T("%%%X"), ch);
strText += strTemp;
}
else
{
strText += (char)ch;
}
p++;
}
delete[] buf;
buf = NULL;

delete[] szBuf;
szBuf = NULL;

AfxMessageBox(strText);
用户 昵称 2012-02-25
  • 打赏
  • 举报
回复

//
to_utf8_string ( % E5 % 8D % A1_ % E5 % 8E % 9F % E5 % 91 % B3 % E7 % 87 % 9F % E9 % A4 % 8A % E4 % B9 % B3 % E7 % 89 % 87 )
//--
to_utf8_string convert utf8 format input data to string
//--
input = E5 8D A1 E5 8E 9F E5 91 B3 E7 87 9F E9 A4 8A E4 B9 B3 E7 89 87
//--
output = "卡原味營養乳片"
//

//-----
最终计算结果 --- "卡原味營養乳片"
//
hedengxiang 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]

http://www.vckbase.com/document/viewdoc/?id=1730
[/Quote]

要贴也稍微看下里面的代码,看下我的要求好吗?真无语~
oyljerry 2012-02-24
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=1730

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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