【问题标题】:Strange wstring to string behavior c++11奇怪的wstring到字符串行为c ++ 11
【发布时间】:2016-08-10 07:25:36
【问题描述】:

据我了解,c++11 允许通过 wstring_convert 在 string 和 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++) v 5.3.0。

编辑:使用 Microsoft Visual Studio 2013 编译相同的代码会产生一个可行的解决方案。

【问题讨论】:

    标签: string c++11 wstring


    【解决方案1】:

    试试这个转换

    wstring x(L"xxx");
    string str(x.begin(), x.end());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      相关资源
      最近更新 更多