我正在尝试将一个vector转换为字符串(然后打印它)。
std::string(vector_.begin(), vector_.end());除了于聚乙二醇外,该代码工作良好。它们将改为:
���我还试着用wcout转换为wstring并打印,但我得到了同样的问题。
提前感谢!
发布于 2022-12-04 15:40:06
我的解决方案:
首先,我将vector<wchar_t>转换为如下所示的utf16string:
std::u16string(buffer_.begin(), buffer_.end());然后我使用这个函数,我在这里找到了一个地方:
std::string IO::Interface::UTF16_To_UTF8(std::u16string const& str) {
std::wstring_convert<std::codecvt_utf8_utf16<char16_t, 0x10ffff,
std::codecvt_mode::little_endian>, char16_t> cnv;
std::string utf8 = cnv.to_bytes(str);
if(cnv.converted() < str.size())
throw std::runtime_error("incomplete conversion");
return utf8;
}我没有编写转换函数,但它的工作原理与预期的一样。有了这个,我可以成功地将vector<wchar_t>转换为string。
https://stackoverflow.com/questions/74638562
复制相似问题