首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将vector<wchar_t>转换为字符串c++

将vector<wchar_t>转换为字符串c++
EN

Stack Overflow用户
提问于 2022-12-01 07:57:47
回答 1查看 61关注 0票数 2

我正在尝试将一个vector转换为字符串(然后打印它)。

代码语言:javascript
运行
复制
std::string(vector_.begin(), vector_.end());

除了于聚乙二醇外,该代码工作良好。它们将改为:

代码语言:javascript
运行
复制
���

我还试着用wcout转换为wstring并打印,但我得到了同样的问题。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-04 15:40:06

我的解决方案:

首先,我将vector<wchar_t>转换为如下所示的utf16string

代码语言:javascript
运行
复制
std::u16string(buffer_.begin(), buffer_.end());

然后我使用这个函数,我在这里找到了一个地方:

代码语言:javascript
运行
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74638562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档