Привет, всем!
Имеется вектор с сырыми данными
std::vector<uchar> bu;
Пытаюсь записать в поле типа string из proto3
message MyData
{
// ...
string image = 18;
// ...
}
в виде std строки:
std::string((char*)bu.data(), bu.size());
получаю ошибку
[libprotobuf ERROR google/protobuf/wire_format_lite.cc:577] String field 'myservice.getMyData.image' contains invalid UTF-8 data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.
Попытка засунуть в протобуфер сразу std::vector<uchar> закончилась на стадии компиляции
note: no known conversion for argument 1 from ‘std::vector<unsigned char>’ to ‘const string& {aka const std::__cxx11::basic_string<char>&}’
Как правильно заполнить string из protobuf?