我想知道这足以在生产代码库中使用吗?
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;
}
答案 0 :(得分:0)
不,这还不够。
考虑包含以下字符的wstring
(为清晰起见,使用数值)
{ 0x41, 0x1243, 0x62 }
(那是'A',其次是ETHIOPIC SYLLABLE QAA,如果您使用的是Unicode,则后跟'b')。
使用您的例程转换为string
将导致包含{ 0x41, 0x43, 0x42 }
或'ACb'的序列。可能不是你所期望的 - 或者想要的。
正如DyP所说 - 你没有做任何转换,只是缩小。