我正在使用一个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}_������
我在这里做错了什么?
答案 0 :(得分:1)
无论您从何处获取Base64
课程,都不需要。{您只需执行stockB64.decodeBase64()
即可获得decoded
字节数组。你确定你有什么是编码的实际文本。通常base64编码意味着这是像图像一样的二进制。如果它是文本,你可以简单地将它作为字符串放在json中。也许将生成的字节数组保存到文件中,然后按内容调查文件类型。