1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C++中实现类似php的UTF8和UrlEncode函数的代码

C++中实现类似php的UTF8和UrlEncode函数的代码

时间:2020-11-04 19:11:03

相关推荐

C++中实现类似php的UTF8和UrlEncode函数的代码

在学习闲暇时间,将代码过程比较常用的代码片段做个收藏,下边代码段是关于C++中实现类似php的UTF8和UrlEncode函数的代码,希望能对码农有较大帮助。

#include <string>#include <vector>inline BYTE toHex(const BYTE x){return x>9?x+55:x+48;}{int len=WideCharToMultiByte(CP_UTF8,0,buf,-1,NULL,0,NULL,NULL);std::vector<char> utf8(len);WideCharToMultiByte(CP_UTF8,0,buf,-1,&utf8[0],len,NULL,NULL);return std::string(&utf8[0]);}{int len=MultiByteToWideChar(CP_ACP,0,buf,-1,NULL,0);std::vector<wchar_t> unicode(len);MultiByteToWideChar(CP_ACP,0,buf,-1,&unicode[0],len);return std::wstring(&unicode[0]);}{std::string sln=str->GetBuffer(0);sln=WC2UT(MB2WC(sln.c_str()).c_str());std::string sOut;for (size_t ix=0;ix<sln.size();ix++){BYTE buf[4];memset(buf,0,4);if (isalnum((BYTE)sln[ix]))buf[0]=sln[ix];else if (isspace((BYTE)sln[ix]))buf[0]='+';else{buf[0]='%';buf[1]=toHex((BYTE)sln[ix]>>4);buf[2]=toHex((BYTE)sln[ix]);}}CString out=sOut.c_str();} 复制代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。