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