应选uint8_t*或std::vector而非std::string接收解码输出,因二进制数据含 会导致std::string截断;输入可用std::string_view避免构造临时string并规避null风险。

Base64解码函数选哪个:std::string还是uint8_t*?
直接用 std::string 接 Base64 字符串再解码最稳妥,避免 C 风格字符串截断或空字符提前终止。C++ 标准库不自带 Base64 解码,得自己实现或用轻量第三方(如 boost::beast::detail::base64),但多数项目倾向手写——逻辑清晰、无依赖、可控性强。
关键点在于:Base64 解码输出是二进制字节流,不是文本,必须用 std::vector<uint8_t></uint8_t> 或 std::string(以 std::string(reinterpret_cast<const char>(data), size)</const> 方式构造)保存原始字节,否则遇到