【发布时间】:2013-08-08 12:24:29
【问题描述】:
我想知道这是否足以在生产代码库中使用?
std::wstring s2w(const std::string& s)
{
std::wstring ws;
ws.assign(s.begin(), s.end());
return ws;
}
std::string w2s(const std::wstring& w)
{
std::string s;
s.assign(w.begin(), w.end());
return s;
}
【问题讨论】:
-
AFAIK,不,这还不够,因为它不进行任何转换(仅缩小)。您必须在窄字符串编码和宽字符串编码之间进行真正的转换。例如,使用
codecvt<wchar_t,char,mbstate_t>,在C++11中可能与wstring_convert结合使用。