C++处理URL的方法,项目有用到,过程记录如下
来源:互联网 发布:双拼域名.com 编辑:程序博客网 时间:2024/06/10 12:32
由于这块需要转换成unicode码,也就是将字符串传换成unicode码,因此需要对输入的字符串做处理,同时又分两种情况,中文 非中文的处理,要区别对待,首先要对输入的字符串进行识别:
到这里基本上结束了~也查看了一些资料,虽说这个功能简单,但是过程有点曲折。但总算完成了,留个纪念吧~希望对其他人有帮助~
int 是不是中文(char *str){char ch;while (1){ch = *str++;if (ch == 0){break;}if (ch&0x80){if (*str & 0x80){return true;}}else{return false;}}return 0;}
然后要进行相应转换
//---------------------------------------------------------------------
//函数:W2C
//功能:将16位wchar_t转换为 8位char[2]
//参数:w_cn为待转换的16位字符,c_cn[]为转换后的8位字符
//备注:wchar_t的高位字节应该存储在char数组的低位字节
//作者:xxxx
//---------------------------------------------------------------------
void W2C(wchar_t w_cn , char c_cn[]){c_cn[0] = w_cn >> 8 ;c_cn[1] = (char)w_cn ;}
然后主体转换代码:
//-------------------------------------------------------------------
//函数:ToHex
//功能:将16位字符串转换为十六进制字符串
//参数:待转换的字符串,字符串长度
//返回值:转换后的字符串
//作者:xxxx
//-------------------------------------------------------------------
CString ToHex(CString Data, long nDataLength){CString sResult;for (long nLoop=0; nLoop<nDataLength; nLoop++){wchar_t ch = Data.GetAt(nLoop);CHAR buff[MAX_PATH] = {0};LPCWSTR str = &ch;WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)str, -1, buff, MAX_PATH, 0, 0);if (IncludeChinese(buff)){char c_cn[2]={'0'};W2C(ch,c_cn);static const char *hex = "0123456789ABCDEF";for(int i=0;i<2;i++){unsigned char chHexA = hex[((unsigned char)(c_cn[i]) >> 4) & 0x0f];unsigned char chHexB = hex[(unsigned char)(c_cn[i]) & 0x0f];sResult += (char)chHexA;sResult += (char)chHexB;}}else{sResult += ch;}}return sResult;}
到这里基本上结束了~也查看了一些资料,虽说这个功能简单,但是过程有点曲折。但总算完成了,留个纪念吧~希望对其他人有帮助~
0 0
- C++处理URL的方法,项目有用到,过程记录如下
- 记录一些有用的URL
- JAVA 中URL链接中文参数乱码的若干处理方法,现在整理收录如下:(抄录)
- hadoop namnode 挂掉以及解决的过程记录如下
- 一次处理项目中工作流问题的过程记录
- 这是我最近项目中用到的分页存储过程!希望有用!
- 使用PowerBuilder 9编绎DLL类型,有点问题.处理过程记录如下."Error opening file 'c:\windows\system32\cgen\en32t.h'"
- 使用PowerBuilder 9编绎DLL类型,有点问题.处理过程记录如下.”Error opening file ‘c:\windows\system32\cgen\en32t.h’”
- c语言牛顿迭代法求平方根的过程如下:
- 处理时间的一些有用的方法
- 一些有用的URL
- 有用的url地址
- 有用的URL集合
- 有用的URL
- 有用的url地址
- c文件到可执行文件运行的过程探索--堆栈中的过程活动记录
- 输入url到返回的过程
- URL 加载到页面的完整过程
- d3学习之(Data Visualization with d3.js Cookbook )三(第三章)
- Android软键盘在清单文件中所有属性解释大全
- 遮罩层 CCClippingNode Stencil buffer is not enabled (ios/android)
- box2d 碰撞监听
- MAVEN常用命令
- C++处理URL的方法,项目有用到,过程记录如下
- Java TagSupport实现Web权限验证标签
- 接口能实例化
- [转]签了工作之后才发现,自己太草率了!(很长很真实!但会对你有所帮助的!)
- JAVA 参数传递
- 九度OJ 1526 朋友圈
- 作业2
- Web_CSS_通过不断设置广告位置来实现广告停留视野效果;
- Linux常用命令大全