我有一个Data-Url文件作为std:string。 必须对base64编码数据进行解码,然后将其传递给此函数:
open (const byte * data, long size)
首先我提取编码数据
size_t pos = dataurl.find_first_of(',');
std::string encoded = dataurl.substr(spos + 1);
然后我使用这个base64 decoder
std::string decoded = base64_decode(encoded);
那么,我如何将'string'类型字符串转换为byte *? 以下代码生成错误
open((byte *)decoded.c_str(), decoded.size() + 1);
//>>error: 'byte' was not declared in this scope
/编辑:所以有一个typedef
typedef uint8_t byte
编码数据是图像!
答案 0 :(得分:1)
您似乎正在删除const
。 c_str()
会返回const char *
。你的演员应该是(const byte *)
。
答案 1 :(得分:-1)
byte是unsigned char。试试open((unsigned char *)decoded.c_str(), decoded.size() + 1);
是的,根据原始base64字符串中编码的内容,您可能希望使用不同的解码方法