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 反斜杠问题的主要内容,如果未能解决你的问题,请参考以下文章

windows和linux的差异:c++中的反斜杠和正斜杠

VS下的C++代码引用文件时文件路径要用正斜杠“/”,而不能用反斜杠““

Ruby String:存储包含反斜杠和十六进制表示法的字符串

用反斜杠(\)分隔符c ++读取输入文件

绝对路径以及相对路径中的斜杠和反斜杠

正则表达式,字符串中需要两个反斜杠“\d”