我们是否需要在从char * buffer构造字符串时考虑编码(UTF-8)

时间:2014-12-02 09:17:34

标签: c++ unicode encoding utf-8

我正在开发一个HTTP客户端模块,它在字符缓冲区中接收来自服务器的信息,并且是UTF-8编码的。我想从这个字符缓冲区创建一个std :: string对象。

我可以通过像这样传递字符缓冲区来直接创建一个字符串对象吗?

 std::string receivedstring(receievedbuffer,bufferlength);

此处receievedbuffer是char []数组,其中包含从TCP / IP连接接收的数据,bufferlength包含接收的字节数。我真的对术语UTF-8感到困惑,我知道它是一个unicode编码,我需要在转换之前采取任何步骤。

1 个答案:

答案 0 :(得分:7)

std::string receivedstring(receievedbuffer,bufferlength);

它不进行任何转换,只是从receievedbuffer复制到receivedstring

如果您的receievedbuffer是UTF-8编码,则完全相同的字节将存储到receivedstring

std :: string只是一种存储格式,并不反映存储在其中的数据的编码。