É seguro converter um mysqlpp :: sql_blob em um std :: string?
-
20-09-2019 - |
Pergunta
Estou pegando alguns dados binários do meu banco de dados MySQL. Ele sai como um tipo MySQLPP :: SQL_BLOB.
Acontece que esse blob é um Google Protobuf serializado. Preciso despertá-lo para poder acessá-lo normalmente.
Isso dá um erro de compilação, já que parsefromstring () não se destina a MySQLPP: SQL_BLOB TIPOS:
protobuf.ParseFromString( record.data );
No entanto, se eu forçar o elenco, ele compila OK:
protobuf.ParseFromString( (std::string) record.data );
Isso é seguro? Estou particularmente preocupado por causa deste trecho da documentação do MySQLPP:
Obrigado pela ajuda!
Solução
Não parece que seria um problema a julgar por essa citação (está basicamente dizendo se um personagem nulo for encontrado na bolha, ele parará a corda, no entanto, as cordas ASCII não terão nulos aleatórios no meio deles) . No entanto, isso pode apresentar um problema para a internalização (os charsets multibyte podem ter nulos no meio).