0

我想知道这是否足以在生产代码库中使用?

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;
}
4

1 回答 1

0

不,这还不够。

考虑wstring包含以下字符的 a (用于清楚起见的数字值) { 0x41, 0x1243, 0x62 }(即“A”,后跟 ETHIOPIC SYLLABLE QAA,如果您使用的是 Unicode,则后跟“b”)。

使用您的例程转换为 astring将导致包含{ 0x41, 0x43, 0x42 }或 'ACb' 的序列。可能不是您所期望或想要的。

正如 DyP 所说 - 您没有进行任何转换,只是缩小了范围。

于 2013-08-08T16:29:50.037 回答