据我所知,c++11允许通过wstring_convert在字符串和wstring之间进行简单的转换,而且应该和(省略掉)一样简单:
int main() {
std::wstring_convert< std::codecvt_utf8<wchar_t> > converter;
std::string gg = u8"prova";
std::wcout << converter.from_bytes(gg.data()) << std::endl;
}输出为空字符串。
我也尝试过std::codecvt_utf8_utf16,但没有成功。
我在stackoverflow中查找,并尝试了许多建议,例如C++ Convert string (or char*) to wstring (or wchar_t*),但都没有响应。
有人能帮我吗?
我在windows上,正在通过mingw和msys2使用gcc (g++) 5.3.0版。
编辑:使用Microsoft Visual Studio 2013编译相同的代码会产生一个有效的解决方案。
发布于 2018-11-27 19:51:41
尝试此转换
wstring x(L"xxx");
string str(x.begin(), x.end());https://stackoverflow.com/questions/36695986
复制相似问题