如何可靠地将XML文件中的64位数据转换为byte [],然后将其与字符串进行比较?以下代码失败,因为空格似乎导致断言失败。目标是断言传递。
请注意,重要的是我们在某个点以byte []的形式提供它,但不是通过字符串进行比较
<Contents>VGVzdGluZyBURSBzZXNzaW9uIGNvbnRhaW5pbmcgQ29tcGxldGUgUGVyc29uIEEgYW5kIENvbXBs
ZXRlIEVxdWlwbWVudCBCLg0KDQpUZXN0IFRlc3QNCg0KUmVmZXJlbmNlcyBDb21wbGV0ZSBQbGFj
ZSBB
</Contents>
byte[] byteData = document.Contents.text()
assert 'VGVzdGluZyBURSBzZXNzaW9uIGNvbnRhaW5pbmcgQ29tcGxldGUgUGVyc29uIEEgYW5kIENvbXBs'+
'ZXRlIEVxdWlwbWVudCBCLg0KDQpUZXN0IFRlc3QNCg0KUmVmZXJlbmNlcyBDb21wbGV0ZSBQbGFj'+
'ZSBB' == new String(byteData)
答案 0 :(得分:1)
Base 64数据是ASCII文本的特殊编码,以便URL友好(历史上)
编辑感谢下面的评论,实际上base64用于编码数据以通过电子邮件发送
从数据中提取文字,请执行以下操作:
new String(
'VGVzdGluZyBURSBzZXNzaW9uIGNvbnRhaW5pbmcgQ29tcGxldGUgUGVyc29uIEEgYW5kIENvbXBsZXRlIEVxdWlwbWVudCBCLg0KDQpUZXN0IFRlc3QNCg0KUmVmZXJlbmNlcyBDb21wbGV0ZSBQbGFjZSBB')
.decodeBase64()
)
结果以'包含完整人A和完整设备B的激情'开始。
来自http://mrhaki.blogspot.fr/2009/11/groovy-goodness-base64-encoding.html