微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Base64解码在Java和Ruby中提供不同的结果

我正在使用解码一些文本
    Base64编码.我试过三个不同的
    Java中的库(公共Base64,Java.misc.,以及java.mail)和所有
    他们产生相同的结果
    以下文字,这是不对的.

但是,当我使用Ruby解码下面的字符串时,我会得到不同的输出.我使用Ruby得到了正确的结果.
Ruby代码是print Base64.decode64(‘< Below String>‘),字符串是

RkxWAQEAAAAJAAAAABIAAK4AAAAAAAAAAgAKb25NZXRhRGF0YQgAAAAHAAV3aWR0aABAdAAAAAAA
AAAGaGVpZ2h0AEB0AAAAAAAAAAlmcmFtZXJhdGUAQBAAAAAAAAAADHZpZGVvY29kZWNpZABACAAA
AAAAAAAMY2FuU2Vla1RvRW5kAQEAD21ldGFkYXRhY3JlYXRvcgIAKVNpbXBsZUZMVldyaXRlci5h
cyB2MC44IHplcm9wb2ludG5pbmUuY29tAAAJ

输出应以FLV开头.我不确定我缺少什么以及为什么输出使用Java不同.

解决方法:

解码base64的结果是二进制数据.你不应该真的尝试打印它,就像它是文本一样.

在不知道Ruby的情况下,我希望调用Base64.decode64的结果是某种字节数组……并且可以通过多种方式将其转换为文本.

查看返回的字节,以确定它是否正确.

(遗憾的是,就我所知,Base64.decode64的documentation提供了你正在做的事情的例子 – 将base64解码操作的结果视为文本.目前尚不清楚实际上是什么类型的数据这就是我仍然喜欢静态类型语言的原因……)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐