利用BOOST库实现最简单的UrlEncode
来源:互联网 发布:excel防止数据丢失 编辑:程序博客网 时间:2024/05/16 03:10
最近在做的一个项目,需要通过URL向服务器提交中文字符
例如:http://192.168.0.1/myServers/willdo?want=想做点事
网上找了一堆的C++ 有关URLEncode,都写得复杂看得更复杂.
其实产URLENCODE后的%XX%XX就是字符的UTF编码的16进制数;
示例代码(在VS2013通过)#ifdef UNICODE#define STRING std::wstring#define CCHAR wchat_t#endifCString CMainWndDlg::UrlEncode(CString srcString){STRING strTmp= _T(" ");//字符窜前面加空格,如果不加,第一个字符encode后会变成0;strTmp += srcString.GetBuffer();std::string tmp = boost::locale::conv::from_utf<CCHAR>(strTmp, "UTF-8");int len = tmp.length();CString strRet;strRet.Empty();for (int nIndex = 1; nIndex < len; nIndex++){BYTE nCode = (BYTE)tmp[nIndex];CCHAR cCode[3];_itow(nCode, cCode, 16);strRet += _T("%");strRet += cCode;memset(cCode, 0, sizeof(CCHAR) * 3);}return strRet;}
注:不知为什么,第一个字符转换后总是0,可能是BOOST库的BUG.
所以在整个字符窜前加个空格再进行encode就正确了.所以我们解释是从第2个字符(也就是tmp[1]开始,最后一个\0不解释);
1 0
- 利用BOOST库实现最简单的UrlEncode
- 利用php实现最简单的爬虫
- 利用boost::asio实现一个简单的服务器框架
- c++ urlencode简单实现
- SDL游戏开发教程06(利用BOOST库实现简单的文件日志功能)
- boost::mutex的最简单的例子
- 利用VC++6.0实现JNI的最简单的例子.
- 利用VC++6.0实现JNI的最简单的例子
- 利用VC++6.0实现JNI的最简单的例子.
- c实现的urlencode
- boost Thread 最简单的小例子
- 最简单的boost安装教程
- 利用ffmpeg实现最简单的视频播放功能
- 利用boost库实现字节间的转换
- 学习boost库中的spirit,实现简单的解析文件。
- (C++)UrlEncode的标准实现
- (C++)UrlEncode的标准实现
- (C++)UrlEncode的标准实现
- ubuntu hiredis环境搭建
- css<span>标签
- OnSharedPreferenceChangeListener无法回掉的问题
- 网页加载速度缓慢的原因分析
- iOS Objective-C Runtime(-)消息机制
- 利用BOOST库实现最简单的UrlEncode
- 关于Linux下串口通信的一点心得
- ipad 在宿舍可以连接上网,在办公室ipad连接d link的时候就不行
- iOS--版本更新
- Array.prototype.slice.call(arguments)
- PHP开发中修改服务器中的编码
- image转换为base64编码
- angular学习日志05 显示文本 ng-bind
- Android学习路线指南