您的位置:首页 > 其它

C11 宽字节转为多字节实现

2018-02-02 16:19 141 查看
BOOL WStringToString(const std::wstring &wstr,std::string &str)
{   
typedef std::codecvt<wchar_t,char,std::mbstate_t> convert_facet;
std::locale mylocale;
const convert_facet& myfacet = std::use_facet<convert_facet>(mylocale);
size_t length_ = wstr.length();
std::unique_ptr<char> pstr(new char[length_+1]);
std::mbstate_t mbs = std::mbstate_t();
const wchar_t* pwc;
char* pc;
convert_facet::result myresult = myfacet.out(mbs,wstr.c_str(),wstr.c_str()+length_+1,pwc,pstr.get(),pstr.get()+length_+1,pc);
if (myresult != convert_facet::ok)
return FALSE;
str = pstr.get();
return TRUE;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  宽字节 多字节 C11