将字符串转换为字节数组

Convert string into byte array

本文关键字:字节数 数组 字节 字符串 转换      更新时间:2023-10-16

我想知道是否有一个c++等效于java . getbytes ()方法。我正在阅读。txt文件,需要将每行转换为字节。

提前感谢!

std::string::data是等价的

在c++中,char是一个字节。因此,std::string已经是一个字节序列。

但是,您可能需要一个unsigned char序列。

一种方法是从字符串中复制字节值,例如复制到std::vector:

using Byte = unsigned char;
vector<Byte> const bytes( s.begin(), s.end() );

如果您将文本文件读取为每行std::wstring,例如使用宽流,则字节取决于该字符串的首选编码

在实践中,除了可能在IBM大型机上,c++宽字符串要么是UTF-16编码,要么是UTF-32编码。对于这两种编码,标准库提供了std::codecvt的专门化,可以与UTF-8进行转换。

如果您想从宽字符串中获得任意编码,那么就c++标准库而言,您就不走运了,对不起。