Est-il sûr de convertir un mysqlpp :: sql_blob à un std :: string?
-
20-09-2019 - |
Question
Je suis preneuse des données binaires de ma base de données MySQL. Il apparaît comme un type mysqlpp :: sql_blob.
Il se trouve que ce blob est un sérialisé Google Protobuf. Je dois désérialiser pour que je puisse accéder normalement.
Cela donne une erreur de compilation, puisque parseFromString () ne vise pas à mysqlpp: types de sql_blob:
protobuf.ParseFromString( record.data );
Cependant, si je force le casting, il compile OK:
protobuf.ParseFromString( (std::string) record.data );
Est-ce sûr? Je suis particulièrement inquiet à cause de cet extrait de la documentation mysqlpp:
Merci pour votre aide!
La solution
Il ne semble pas que ce serait un problème à en juger par cette citation (il est essentiellement dire si un caractère nul se trouve dans le blob, il arrêtera la chaîne là-bas, mais les chaînes ASCII seront pas nuls au hasard au milieu d'eux). Cependant, cela pourrait présenter un problème pour intériorisation (multi-octets charsets peuvent avoir des valeurs nulles au milieu).