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

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

谢谢。

最佳答案

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

但是,您确实需要小心构造字符串。如果您只是使用类似 std::string s = "Hello,\0 world!" 的东西,这将不起作用,因为从 char* 转换只会转到第一个空字符。但是,std::string s("Hello,\0 world!", 14); 工作正常。

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

关于C++ - 将 BLOB 存储为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42169231/

10-11 23:06
查看更多