如何将XML文件中的64位数据转换为Groovy中的字符串

时间:2012-05-10 16:01:34

标签: groovy xml-parsing

如何可靠地将XML文件中的64位数据转换为byte [],然后将其与字符串进行比较?以下代码失败,因为空格似乎导致断言失败。目标是断言传递。

请注意,重要的是我们在某个点以byte []的形式提供它,但不是通过字符串进行比较

<Contents>VGVzdGluZyBURSBzZXNzaW9uIGNvbnRhaW5pbmcgQ29tcGxldGUgUGVyc29uIEEgYW5kIENvbXBs
                ZXRlIEVxdWlwbWVudCBCLg0KDQpUZXN0IFRlc3QNCg0KUmVmZXJlbmNlcyBDb21wbGV0ZSBQbGFj
                ZSBB
            </Contents>

byte[] byteData = document.Contents.text()
assert 'VGVzdGluZyBURSBzZXNzaW9uIGNvbnRhaW5pbmcgQ29tcGxldGUgUGVyc29uIEEgYW5kIENvbXBs'+
                'ZXRlIEVxdWlwbWVudCBCLg0KDQpUZXN0IFRlc3QNCg0KUmVmZXJlbmNlcyBDb21wbGV0ZSBQbGFj'+
                'ZSBB' == new String(byteData)

1 个答案:

答案 0 :(得分:1)

Base 64数据是ASCII文本的特殊编码,以便URL友好(历史上)

编辑感谢下面的评论,实际上base64用于编码数据以通过电子邮件发送

从数据中提取文字,请执行以下操作:

new String(
'VGVzdGluZyBURSBzZXNzaW9uIGNvbnRhaW5pbmcgQ29tcGxldGUgUGVyc29uIEEgYW5kIENvbXBsZXRlIEVxdWlwbWVudCBCLg0KDQpUZXN0IFRlc3QNCg0KUmVmZXJlbmNlcyBDb21wbGV0ZSBQbGFjZSBB')
.decodeBase64()
)

结果以'包含完整人A和完整设备B的激情'开始。

来自http://mrhaki.blogspot.fr/2009/11/groovy-goodness-base64-encoding.html