Возможно ли, чтобы строка, сформированная из кодировки base64, имела пробел ('')?
Возможно ли пространство в кодировке base64?
Ответ 1
Нет. Следующий вопрос?
http://en.wikipedia.org/wiki/Base64#Variants_summary_table
Фактически, пробелы и CRLF обычно молча пропускаются во время декодирования, поскольку они могут появляться в результате разделения длинных строк.
Ответ 2
Прочитав wiki http://en.wikipedia.org/wiki/Base64, кажется, что в кодировке Base64 для MIME (RFC 2045) пробелы разрешены и отбрасываются. Во всех остальных вариантах они запрещены. Ах... и этот вопрос повторяется: Может ли закодированная строка base64 содержать пробелы?
Ответ 3
Выход кодировки Base64 никогда не будет содержать пробел. В FooBabel есть бесплатный (бесплатный) онлайн-инструмент кодирования, основанный на Apache Codec, где вы можете играть с такими параметрами, как linebreaks и term termators - foobabel base64 codec
Ответ 4
Я столкнулся с этим вопросом при отладке кода vbscript.
Как ни странно, MSFT кодирует это, а не кодирует с помощью +, он будет использовать символ ''. MIME можно зафиксировать с помощью s//+/g, и он будет работать с /usr/bin/base 64.
Обратите внимание, что это хорошо рекламируемый шаблон для кодирования файла в 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
Ответ 5
Я получал строку base64 с пробелом, но мой декодер просто игнорировал пробел. К сожалению, игнорирование пространства не обеспечивало ожидаемого значения.
Пробел ("") должен был быть заменен на "+", чтобы мой декодер вывел правильное значение.