gpt4 book ai didi

c++ - Poco::Base64Decoder 流不返回完整的字符串

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:02 26 4
gpt4 key购买 nike

不确定我是不是用错了,因为这不是我的专业领域,但我的印象是这应该给我一个完整的解码 openframeworks 缓冲区(或一个简单的字符串,我尝试了各种方法都导致同样太短的字符串):

string str; // string is a line from a file handle and shows to be ok in the debugger
istringstream istr(str);
Poco::Base64Decoder b64in(istr);
ofBuffer buffer;
b64in >> buffer;

现在我正在解码的 base64 字符串示例是这一行:

I2J1bmRsZQAAAAAAAAAAAQAAABwvT1NDL1NwYWNlSW50ZW5zaXR5ACxmAAA6nUlSAAAAFC9PU0MvU3BlZWQAACxmAAA90/fPAAAAGC9PU0MvU21vb3RobmVzcwAsZgAAP2Wu5gAAABQvT1NDL1JlYWNoAAAsZgAAPnxQSAAAABgvT1NDL0RlbnNpdHkAAAAALGYAAAAAAAAAAAAYL09TQy9Db2hlcmVuY2UAACxmAAA+tYEGAAAAIC9PU0MvVHJhdmVsSW50ZW5zaXR5AAAAACxmAAA8eQlsAAAAFC9PU0MvUmh5dGhtACxmAAA+6LQ5AAAAGC9PU0MvSGFybW9ueQAAAAAsZgAAPui0OQAAABQvT1NDL0VuZXJneQAsZgAAPYznBA==

该行没有解析为简单的 ascii 文本,而是通过一些我无权访问的 vvvv 补丁以 base64 转储的原始 osc 数据包...所以我猜这也可能是编码问题?

无论我使用流复制器还是像上面那样的运算符,我在输出中得到的只是“#bundle”。这会以某种方式与“#bundle”之后的/字符或其他非标准内容有关吗?我的印象是 Base64Decoder 不关心空格或它在解码数据中找到的任何内容。

最佳答案

所以我最终没有使用运算符,而是将 base64 解码器的输出复制到一个流,然后从中获取一个字符串:

istringstream istr(str);
ostringstream ostr;
Poco::Base64Decoder b64in(istr);
copy(std::istreambuf_iterator<char>(b64in),
std::istreambuf_iterator<char>(),
std::ostreambuf_iterator<char>(ostr));
cout << ostr.str(); // returns full decoded output

关于c++ - Poco::Base64Decoder 流不返回完整的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22151718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com