我的一所大学告诉我,空字符串不是有效的base64编码数据字符串。我不认为这是真的(他太懒了解析它),但谷歌搜索了一下甚至检查RFC我还没有找到任何明确的文档说明如何在base64中正确编码零字节长度的blob。
所以,问题是:你是否有一些官方文档的链接,明确说明了如何在base64中编码零字节?
答案 0 :(得分:9)
答案 1 :(得分:6)
我的想法是,有两个可能的base64值,空字符串可以产生;要么是空字符串,要么是完全由填充字符组成的字符串('===')。任何其他有效的base64字符串都包含信息。在第二种情况下,我们可以应用RFC中的以下规则:
如果在结尾处找到超过允许的填充字符数 字符串,例如,以“===”结尾的基本64字符串, 多余的填充字符可以忽略。
因为可以忽略它们,所以可以从结果编码的字符串中删除它们而不会产生任何后果,再一次让我们留下一个空字符串作为空字符串的base64表示。