それはSTD ::文字列にmysqlpp :: SQL_BLOBを変換するために安全ですか?
-
20-09-2019 - |
質問
私は、MySQLデータベースのうち、いくつかのバイナリデータをつかみました。それはmysqlpp :: SQL_BLOB型として出てきます。
ちょうどので、このBLOBは、シリアライズグーグルいるProtobufであることを起こります。私は通常それにアクセスできるように、私はそれをデシリアライズする必要があります。
ParseFromString()がmysqlppのために意図されていないので、これは、コンパイルエラーを与える:SQL_BLOBタイプ:
protobuf.ParseFromString( record.data );
私はキャストを強制する場合は、しかし、それはOKコンパイルします:
protobuf.ParseFromString( (std::string) record.data );
これは安全ですか?私はmysqlppのドキュメントからこのために、スニペットのため、特に心配します:
あなたの助けをありがとう!
解決
それは引用によって判断し、問題になるようですが、見ていません(基本的にはしかし、ASCII文字列が途中でランダムなヌルを持っていないだろう、NULL文字がブロブに発見された場合、それはそこに文字列を停止しますと言っていますそのうちの)。しかし、これは(マルチバイト文字セットは途中でヌルを有していてもよい)の内在のための問題を提示することがあります。
所属していません StackOverflow