可以在 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/