Возможно ли пространство в кодировке base64?

Возможно ли, чтобы строка, сформированная из кодировки base64, имела пробел ('')?

Ответ 1

Нет. Следующий вопрос?

http://en.wikipedia.org/wiki/Base64#Variants_summary_table

Фактически, пробелы и CRLF обычно молча пропускаются во время декодирования, поскольку они могут появляться в результате разделения длинных строк.

Ответ 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 с пробелом, но мой декодер просто игнорировал пробел. К сожалению, игнорирование пространства не обеспечивало ожидаемого значения.

Пробел ("") должен был быть заменен на "+", чтобы мой декодер вывел правильное значение.