在 JAVA 中解码(Base64 编码数据,通过 python 类型转换转换为字符串)到字节数组



嗨,我在类型转换方面遇到了一些问题。首先,使用 python3.7,我从 imagefile 中读取数据并将其编码为 base64,然后是字节类型。然后,我通过类型转换将字节数据转换为字符串Python 代码如下。

f = open("monitor-1.png", "rb")
    data = f.read()
    encoded_string = str(base64.b64encode(data))

然后我使用套接字将其发送到java程序

要从 java 程序查看图像, 需要从接收的数据中获取字节数组。但是我该怎么办?python的类型转换让我感到困惑。

也许您应该提供一个可用于重现您的问题的片段。

以下代码片段正在工作

import base64
f = open("monitor-1.png", "rb")
data = f.read()
encoded_string = str(base64.b64encode(data))
print(encoded_string)
f.close()

输出

b'iVBORw0KGgoAAAANSUhEUgAAAAIAAAABAQMAAADO7O3JAAAABlBMVEUAAAD///+l2Z/dAAAACklEQVQI12NoAAAAggCB3UNq9AAAAABJRU5ErkJggg=='

在 Java 中使用 Base64 编码字符串jshell

jshell> byte[] bytes = Base64.getDecoder().decode("iVBORw0KGgoAAAANSUhEUgAAAAIAAAABAQMAAADO7O3JAAAABlBMVEUAAAD///+l2Z/dAAAACklEQVQI12NoAAAAggCB3UNq9AAAAABJRU5ErkJggg==")
bytes ==> byte[85] { -119, 80, 78, 71, 13, 10, 26, 10, 0, 0 ... 8, 68, -82, 66, 96, -126 }
jshell> Files.write(Paths.get("out.png"), bytes)
$2 ==> out.png

创建文件out.png

文件monitor-1.pngout.png相等

$ md5sum monitor-1.png out.png 
49b0cecce3c3ce0966afd6c13b03a4b5  monitor-1.png
49b0cecce3c3ce0966afd6c13b03a4b5  out.png

最新更新