Encoding 在base64编码中是否可以使用空格?

Encoding 在base64编码中是否可以使用空格?,encoding,character-encoding,base64,Encoding,Character Encoding,Base64,base64编码生成的字符串是否可能包含空格(“”?否。下一个问题 实际上,在解码过程中,空格和CRLF通常会被悄悄地跳过,因为它们可能是分割长字符串的结果。通过阅读wiki,似乎在MIME的Base64传输编码(RFC 2045)中,空格是允许的,并且被丢弃。在所有其他变体中,它们都是禁止的。啊。。。这个问题是重复的:Base64编码输出永远不会包含空格。FooBabel有一个很好的(免费)在线编码工具,它基于Apache编解码器,您可以在其中使用诸如换行符和换行符之类的选项-我在调试vbs

base64编码生成的字符串是否可能包含空格(“”?

否。下一个问题


实际上,在解码过程中,空格和CRLF通常会被悄悄地跳过,因为它们可能是分割长字符串的结果。

通过阅读wiki,似乎在MIME的Base64传输编码(RFC 2045)中,空格是允许的,并且被丢弃。在所有其他变体中,它们都是禁止的。啊。。。这个问题是重复的:

Base64编码输出永远不会包含空格。FooBabel有一个很好的(免费)在线编码工具,它基于Apache编解码器,您可以在其中使用诸如换行符和换行符之类的选项-

我在调试vbscript代码时遇到了这个问题

奇怪的是,MSFT是这样编码的,而不是使用+进行编码,它将使用“”。MIME可以用s/+//g修复,它可以用/usr/bin/base64工作

请注意,这是一种在vbscript中对文件进行编码的广为人知的模式,如果采用相反的方式,MSFT将处理空格并将相同的文件放回原处。(它在其他地方无法互操作)


我收到一个带有空格的base64字符串,但我的解码器只是忽略了空格。不幸的是,忽略空格并不能提供预期的值


必须将空格(“”)替换为“+”,以便我的解码器输出正确的值。

是否可能重复,如果它们没有被自动跳过?我们能强迫他们这样做吗?我对这里描述的有一个问题:你能告诉我们这是什么原因吗
Function b64(fqfn)
   Dim inputStream: Set inputStream = CreateObject("ADODB.Stream")
   inputStream.Open
   inputStream.Type = 1
   inputStream.LoadFromFile(fqfn)

   Dim bytes: bytes = inputStream.Read

   Dim dom: Set dom = CreateObject("Microsoft.XMLDOM")
   Dim elem: Set elem = dom.createElement("tmp")
   elem.dataType = "bin.base64"
   elem.nodeTypedValue = bytes
   b64 = elem.text
End Function