从base64编码生成的字符串是否可以在其中包含空格('')?
答案 0 :(得分:18)
没有。下一个问题?
http://en.wikipedia.org/wiki/Base64#Variants_summary_table
实际上,在解码过程中通常会静默跳过空格和CRLF,因为它们可能会因拆分长字符串而出现。
答案 1 :(得分:7)
通过阅读http://en.wikipedia.org/wiki/Base64 wiki,似乎在Base64中允许并丢弃MIME(RFC 2045)空间的传输编码。在所有其他变种中,他们是被禁止的。啊......这个问题是重复的:Can a base64 encoded string contain whitespace?
答案 2 :(得分:3)
Base64编码输出永远不会包含空格。 FooBabel有一个很好的(免费)在线编码工具,基于Apache Codec,您可以在其中使用换行符和行终止符等选项 - foobabel base64 codec
答案 3 :(得分:1)
我在调试vbscript代码时遇到了这个问题。
奇怪的是MSFT编码就像这样,而不是用+编码它会使用''。 MIME可以用s / / + / g修复,它可以用于/ usr / bin / base64。
请注意,这是一个很好的广告模式,用于在vbscript中编码文件,如果反过来,MSFT将处理空格并将相同的文件放回原处。 (它不会在其他地方互操作)
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
答案 4 :(得分:0)
我正在接收带有空格的base64字符串,但是我的解码器只是忽略了空格。不幸的是,忽略空间并没有提供预期的值。
为了使我的解码器输出正确的值,必须将空格(“”)替换为“ +”。