我有一个C ++程序,它正在接收编码的二进制数据作为HTTP响应。响应需要解码并存储为二进制文件。发送二进制数据的HTTP服务器是用Python编写的,下面是执行编码的示例代码。
#!/usr/bin/env python3
import base64
# content of the file is string "abc" for testing, the file could be an image file
with open('/tmp/abc', 'rb') as _doc:
data = _doc.read()
# Get Base-64 encoded bytes
data_bytes = base64.b64encode(data)
# Convert the bytes to a string
data_str = data_bytes.decode('utf-8')
print(data_str)
现在,我想使用C ++程序解码接收到的data_str。我可以使下面的python等效以正常工作。
_data = data_str.encode('utf-8')
bin_data = base64.b64decode(_data)
但是,对于C ++,我尝试使用Boost库的from_utf8方法,但无济于事。谁能指导用C ++解码和获取二进制数据的最佳方法(最好是使用boost,因为它是可移植的)?