广泛到狭窄的人物

Dan*_*Dan 4 c++ windows string stl

将std :: wstring转换为std :: string的最简洁方法是什么?我过去曾使用过W2A等宏,但我从未喜欢它们.

bma*_*ies 5

您可能正在寻找的是icu,一个开源的跨平台库,用于处理Unicode和遗留编码等许多其他事物.


Pot*_*ter 4

最原生的方法是std::ctype<wchar_t>::narrow(),但这只不过是 gishu 建议的 std::copy ,而且您仍然需要管理自己的缓冲区。

如果您不想进行任何翻译而只是想要一句台词,那么您可以这样做std::string my_string( my_wstring.begin(), my_wstring.end() )

如果您想要实际的编码翻译,您可以使用 locales/codecvt 或另一个答案中的库之一,但我猜这不是您想要的。