Como criar istringstream C ++ a partir de uma matriz de caracteres com caracteres nulos (0)?

Eu tenho uma matriz de caracteres que contém caracteres nulos em locais aleatórios. Tentei criar um iStringStream usando essa matriz (encodedData_arr) como abaixo,

Eu uso esse iStringStream para inserir dados binários (dados da imagem de Iplimage) em um campo de blob do banco de dados MySQL (usando o setBlob do MySQL Connector / C ++ (istream * is)): ele armazena apenas os caracteres até o primeiro caractere nulo.

Existe uma maneira de criar um iStringStream usando uma matriz de caracteres com caracteres nulos?

unsigned char *encodedData_arr = new unsigned char[data_vector_uchar->size()];
// Assign the data of vector<unsigned char> to the encodedData_arr
for (int i = 0; i < vec_size; ++i)
{
 cout<< data_vector_uchar->at(i)<< " : "<< encodedData_arr[i]<<endl;
}

// Here the content of the encodedData_arr is same as the data_vector_uchar
// So char array is initializing fine.
istream *is = new istringstream((char*)encodedData_arr, istringstream::in || istringstream::binary);

prepStmt_insertImage->setBlob(1, is);
// Here only part of the data is stored in the database blob field (Upto the first null character)

questionAnswers(2)

yourAnswerToTheQuestion