可能是重复问题:
如何在C++中将Byte*转换为std::string?
我正在使用嵌入式设备并尝试接收消息。
这个消息由一个const uint8_t* data
和它的长度size_t len
给出。
现在我需要一个std::string
来输出我的数据。
可能是重复问题:
如何在C++中将Byte*转换为std::string?
我正在使用嵌入式设备并尝试接收消息。
这个消息由一个const uint8_t* data
和它的长度size_t len
给出。
现在我需要一个std::string
来输出我的数据。
std::string s( data, data+len );
如果你想将UTF-8转换成你所在平台使用的其他系统编码,你需要使用一些特定于该平台的方法。
data+len
?难道不应该只是len
吗? - undefinedstd::string mystring(data);
对于某些情况,sizeof(uint8) != sizeof(char),您可以这样做:
std::string output( len, 0 );
for ( size_t i = 0; i < len; ++i )
output[ i ] = static_cast<char>( data[ i ] );
sizeof(uint8)!=sizeof(char)
是不可能的。sizeof
以char
为单位计算大小,因此如果char
大于8位,就不可能有一个8位类型,即uint8
不存在。 - R.. GitHub STOP HELPING ICE
uint8_t
的内容,而另一个是char
,在一些不正常的设备上可能会有所不同。 - Ciro Santilli OurBigBook.com