如何从包含 Unicode 字符的 HTTP 负载中获取图像

问题描述 投票:0回答:1

我有一个 .jpeg 文件的数据字符串,如下所示,从 HTTP 请求正文中检索:

ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001\u0000\u0001\u0000\u0000ÿâ\u0001ØICC_PROFILE\u0000\u0001\u0001\u0000\u0000\u0001È\u0000\u0000\u0000\u0000\u00040\u0000\u0000mntrRGB XYZ \u0007
...

我想使用 Python 将其保存为图像(并最终将图像转换回这种格式)。

我尝试使用 urllib,假设它采用 Base64 和 UTF-8:

import urllib.request

data = u"ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001" # ...
uri = "data:image/jpeg;charset=UTF-8;base64," + data

response = urllib.request.urlopen(uri)
with open(r'image.jpg', 'wb') as f:
    f.write(response.file.read())

但是 Windows 将其读取为不支持的文件类型/已损坏。 是因为Unicode字符吗?如果是这样,我如何找到原始的 ASCII?

python json image unicode character-encoding
1个回答
0
投票

您需要使用 URI 的 base64 编码。

import base64

uri = "data:image/jpeg;charset=UTF-8;base64," + base64.b64encode(data)
© www.soinside.com 2019 - 2024. All rights reserved.