字符串与UTF_8的相互转换
来源:互联网 发布:鼻子变小知乎 编辑:程序博客网 时间:2024/06/05 17:35
//功能: 将Unicode字串转换为UTF8字串//参数://strDownloadInfo: 要下载的app的信息(Unicode类型)//返回值://成功返回转换后的UTF8的string字串,失败则返回空字串string UnicodeConversionUTF8(string strDownloadInfo){stringstrResurt;// 返回的结构字符串DWORDdwStrlen = 0;// 要获取的字节数的大小char *strNew = NULL;__try{if (0 == strDownloadInfo.size()){__leave;}if ((dwStrlen=::WideCharToMultiByte(CP_UTF8,0,CA2W(strDownloadInfo.data()),-1,NULL,0,NULL,NULL))==0){__leave;} strNew = new char[dwStrlen+1]; if (NULL == strNew){__leave;}if (0 == ::WideCharToMultiByte(CP_UTF8,0,CA2W(strDownloadInfo.data()),-1,strNew,dwStrlen,NULL,NULL)){__leave;}strResurt = strNew;}__finally{if (strNew != NULL){delete[] strNew;}}return strResurt;}// 功能:将UTF8字节转换为Unicode编码的字符串// 参数://strUtf:要转换的UTF8的编码字符串// 返回值://成功后返回Unicode编码的字符串,失败则返回空字符串string UTF8ConversionUnicode(string strUtf){stringstrResurt;// 返回的结构字符串DWORDdwStrlen = 0;// 要获取的字节数的大小WCHAR*strNew = NULL;__try{if (0 == strUtf.size()){__leave;}if (0 == (dwStrlen=::MultiByteToWideChar(CP_UTF8,0,strUtf.data(),-1,NULL,0))){__leave;} strNew = new WCHAR[dwStrlen+1]; if (NULL == strNew){__leave;}ZeroMemory(strNew,sizeof(TCHAR)*(dwStrlen+1));if (0 == ::MultiByteToWideChar(CP_UTF8,0,strUtf.data(),-1,strNew,dwStrlen)){__leave;}strResurt = CW2A(strNew);}__finally{if (strNew != NULL){delete[] strNew;}}return strResurt;}
0 0
- 字符串与UTF_8的相互转换
- c++国标与UTF_8的转换
- utf_8与GB2312编码的转换
- UTF_8 与 ASCII之间的转换
- GB2312、UTF_8、UNICODE之间相互转换
- JAVA的整型与字符串相互转换
- 十六进制与字符串的相互转换
- 字符串与数值之间的相互转换
- 字符串与数值相互转换的函数
- XML与字符串的相互转换
- JAVA的整型与字符串相互转换
- 字符串与数值相互转换的函数
- JAVA的整型与字符串相互转换
- UTC与字符串的相互转换
- JAVA的整型与字符串相互转换
- 字符串与数字的相互转换
- JAVA的整型与字符串相互转换
- time_t 与字符串之间的相互转换
- StringUtils方法使用
- 绘制像素到屏幕上
- 链表求和
- primary key与unique的区别
- iOS 阿里云上传图片
- 字符串与UTF_8的相互转换
- [MBProgressHUD报错] The view used in the MBProgressHUD initializer is nil
- mew memory
- java入门教程-7.7Java线程优先级
- 搭建ELK(Elasticsearch + Logstash + Kibana)日志分析平台
- leetcode 21. Merge Two Sorted Lists
- Algorithm_DP
- WebService(一):本质
- esayui的combotree属性值