C++:base64 到 PNG 反斜杠问题
Posted
技术标签:
【中文标题】C++:base64 到 PNG 反斜杠问题【英文标题】:C++ : base64 to PNG backslash issue 【发布时间】:2020-12-25 14:13:16 【问题描述】:我正在尝试将 png 文件转换为 base64,但是当我将输出写入文件时,我有很多这样的反斜杠:data:image\/png;base64
我的代码:
string encoded_png;
Mat img; // Load an image here
vector<uchar> buf;
cv::imencode(".png", img, buf);
auto base64_png = reinterpret_cast<const unsigned char*>(buf.data());
encoded_png = "data:image/png;base64," + base64_encode(base64_png, buf.size());
【问题讨论】:
你能说明你是如何将数据写入文件的吗? 什么是base64_encode
?它返回什么?
@RetiredNinja boost::property_tree::ptree pt; pt.put("链接", encoded_png); std::stringstream ss; boost::property_tree::json_parser::write_json(ss, pt);我的文件流; myfile.open(路径);我的文件
@Someprogrammerdude github.com/ReneNyffenegger/cpp-base64 这是转换为base64的函数,它返回一个std::string
您应该编辑代码以将数据保存到您的问题中。这是最重要的细节,可以删除cmets。
【参考方案1】:
将/
转义为\/
在JSON 中完全有效。任何解析器都应将转义字符解释为 /
。
【讨论】:
以上是关于C++:base64 到 PNG 反斜杠问题的主要内容,如果未能解决你的问题,请参考以下文章
VS下的C++代码引用文件时文件路径要用正斜杠“/”,而不能用反斜杠““