解码Base 64 In Groovy Returns乱码

Decoding Base 64 In Groovy Returns Garbled Characters

我正在使用 API,其中 returns 我想从中解析和收集数据的 Base64 编码文件。我在解码 Base64 时遇到问题,因为它返回的是乱码。我的代码如下。

Base64 decoder = new Base64()
def jsonSlurper = new JsonSlurper()
def json = jsonSlurper.parseText(Requests.getInventory(app).toString())
String stockB64 = json.getAt("stock")

byte[] decoded = decoder.decode(stockB64)
println(new String(decoded, "US-ASCII"))

我也试过println(new String(decoded, "UTF-8"))和这个returns同样的乱码输出。我粘贴了一个示例输出以供参考。

�      ���v��� 
��W`�C�:�f��y�z��A��%J,S���}qF88D q )��'�C�c�X��������+n!��`nn���.��:�g����[��)��f^���c�VK��X�W_����������?4��L���D�������i�9|�X��������\���L�V���gY-K�^����
��b�����~s��;����g���\�ie�Ki}_������

我做错了什么?

您不需要 Base64 class 无论您从哪里拿到它。您可以简单地执行 stockB64.decodeBase64() 来获取 decoded 字节数组。您确定您拥有的是经过编码的实际文本吗?通常 base64 编码意味着这是一些像图像一样的二进制文件。如果它是文本,你可以简单地将它作为字符串放在 json 中。也许将生成的字节数组保存到文件中,然后按内容调查文件类型。