base64 编码的字符串可以包含空格吗?
2022-08-30 14:15:49
base64 编码的字符串是否包含空格?具体来说,它是否可以在字符串末尾包含空格?
PS. 我正在考虑整个“MySQL在VARCHAR字段中存储字符串时将修剪尾随空格”在这里;-)
base64 编码的字符串是否包含空格?具体来说,它是否可以在字符串末尾包含空格?
PS. 我正在考虑整个“MySQL在VARCHAR字段中存储字符串时将修剪尾随空格”在这里;-)
不,它不能。请参阅 Base64 了解 允许使用的字符存储库,它们是 字符 、 、 和 (最后两个可能因实现而异)以及填充字符(但这也取决于实现,因为某些实现根本不使用填充)。base64
A-Z
a-z
0-9
+
/
=
它不应该,但它可能会这样做。
有效的 base64 字符串不应包含空格,因为编码字母表应仅由 A-Z a-z 0-9 + / 组成
但是,如果编码的数据恰好包含“+”字符,并且数据在 URL 中传递,则可能会无意中将其转换为空格。因此,您可能会遇到一个假定的 base64 字符串,在这种情况下,该字符串中似乎包含空格。
如果是这种情况,只需在解码前将空格替换为加号即可。
PS.我正在考虑整个“MySQL在VARCHAR字段中存储字符串时将修剪尾随空格”
顺便说一句,从MySQL 5.0.3开始,varchar的尾随空格不会被随意剥离。