C ++ - 将BLOB存储为字符串

时间:2017-02-10 21:49:05

标签: c++ encoding blob

在C ++中将BLOB存储为字符串是否可以?我猜测BLOB中可能有一个空字符,可能导致像len()这样的std :: string操作失败。我正在尝试将位图存储为BLOB。

最终我想将此字符串存储到嵌入式数据库中,并将字符串读回到std :: string

感谢。

1 个答案:

答案 0 :(得分:2)

是的,这很好。 std::string必须单独存储长度,因此它可以嵌入空字符。只要你有足够的内存,你就可以将它存储在一个字符串中。

但是,你需要注意构造字符串。如果您刚刚使用像std::string s = "Hello,\0 world!"这样的somethnig,这将无效,因为仅从char*转换为第一个空字符。但是,std::string s("Hello,\0 world!", 14);工作正常。

当然,如果您确实使用char*data()转换回c_str(),则需要确保获取长度。