从std :: vector <unsigned char =“”>转换为不同字节顺序的wstring </unsigned>

时间:2014-11-10 22:45:01

标签: c++ endianness

如何将std::vector<unsigned char>转换为std::wstring

矢量中的数据也是小端序的含义

我传达了这个:

0xBE 0xEF 0xBE 0xEF 0xBE 0xEF 0xBE 0xEF

我收到的是存储在我的载体中的

0xEF 0xBE 0xEF 0xBE 0xEF 0xBE 0xEF 0xBE

我不得不将其恢复为原始形式并将其转换为std::wstring。我怎样才能做到这一点? (此代码运行的机器始终为x86或x64)

1 个答案:

答案 0 :(得分:1)

如果没有重新排序,您可以使用std::wstringstream

std::vector<unsigned char> vec{'B','E',' ','E','F',' ','B','E',' ','E','F',' ','B','E',' ','E','F',' ','B','E',' ','E','F'};
std::wstringstream ss;
for(auto v : vec)
{
    ss<<v;
}
std::wstring w = ss.str();
然而,重新排序本身,我不明白,所以通过以正确的方式遍历向量来自己合并。