2010-12-22 75 views

回答

8

如果你不想编码转换,这将工作:

std::string s(data, data+len); 

如果你想UTF-8转换成任何系统编码所使用的平台,你需要使用一些特定于平台的方式。

1

您的uint8*字符串是以空字符结尾的吗?如果是这样,你可以这样做:

std::string mystring(data); 
+0

当有长度时,数据可能不是空终止的 – Milan 2010-12-22 12:08:55

+0

而且它可能更好地明确指定它;无论如何,所有要做的就是再次搜索长度。 – GManNickG 2010-12-22 12:58:18

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 ]);