我在嵌入式设备上并尝试接收消息。
此邮件由const uint8_t* data
及其长度size_t len
提供。
现在我需要一个std::string
来输出我的数据。
答案 0 :(得分:8)
如果您不想转换编码,则可以使用:
std::string s( data, data+len );
如果要将UTF-8转换为平台使用的任何系统编码,则需要使用某些特定于平台的方法。
答案 1 :(得分:1)
您的uint8*
字符串是否以null结尾?如果是这样,你可以这样做:
std::string mystring(data);
答案 2 :(得分:0)
对于某些情况sizeof(uint8)!= sizeof(char),你可以这样做:
std::string output( len, 0 );
for ( size_t i = 0; i < len; ++i )
output[ i ] = static_cast<char>( data[ i ] );