base64 编码的字符串可以包含空格吗?

2022-08-30 14:15:49

base64 编码的字符串是否包含空格?具体来说,它是否可以在字符串末尾包含空格?

PS. 我正在考虑整个“MySQL在VARCHAR字段中存储字符串时将修剪尾随空格”在这里;-)


答案 1

不,它不能。请参阅 Base64 了解 允许使用的字符存储库,它们是 字符 、 、 和 (最后两个可能因实现而异)以及填充字符(但这也取决于实现,因为某些实现根本不使用填充)。base64A-Za-z0-9+/=


答案 2

它不应该,但它可能会这样做。

有效的 base64 字符串不应包含空格,因为编码字母表应仅由 A-Z a-z 0-9 + / 组成

但是,如果编码的数据恰好包含“+”字符,并且数据在 URL 中传递,则可能会无意中将其转换为空格。因此,您可能会遇到一个假定的 base64 字符串,在这种情况下,该字符串中似乎包含空格。

如果是这种情况,只需在解码前将空格替换为加号即可。

PS.我正在考虑整个“MySQL在VARCHAR字段中存储字符串时将修剪尾随空格”

顺便说一句,从MySQL 5.0.3开始,varchar的尾随空格不会被随意剥离。


推荐