在Groovy中解码Base 64返回乱码

时间:2017-06-29 13:04:49

标签: groovy encoding base64

我正在使用一个API,它返回一个我要解析并从中收集数据的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")),这会返回相同的乱码输出。我已经粘贴了一个剪切输出的示例以供参考。

�      ���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}_������

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

无论您从何处获取Base64课程,都不需要。{您只需执行stockB64.decodeBase64()即可获得decoded字节数组。你确定你有什么是编码的实际文本。通常base64编码意味着这是像图像一样的二进制。如果它是文本,你可以简单地将它作为字符串放在json中。也许将生成的字节数组保存到文件中,然后按内容调查文件类型。