Код Base 64 используется в электронной почте для кодирования последовательности 8-битных байтов в более длинную последовательность графических символов ASCII. Он определен в Internet RFC242045, а также в RFC 4648. В этом разделе описываются функции для преобразования в этот код и из него.
Эта функция преобразует область от beg до end в код base 64. Она возвращает длину закодированного текста. Ошибка сигнализируется, если в области есть многобайтовый символ, то есть в многобайтовом буфере область должна содержать только символы ASCII или сырые байты.
Обычно эта функция вставляет символы новой строки в закодированный текст, чтобы избежать слишком длинных строк. Однако, если необязательный аргумент no-line-break не равен nil, эти символы новой строки не добавляются, и вывод представляет собой одну длинную строку.
Эта функция похожа на base64-encode-region, но реализует вариант base 64 для URL в соответствии с RFC 4648, и она не вставляет символы новой строки в закодированный текст, поэтому вывод представляет собой одну длинную строку.
Если необязательный аргумент no-pad не равен nil, то эта функция не генерирует дополнение (=).
Эта функция преобразует строку string в код base 64. Она возвращает строку, содержащую закодированный текст. Как и base64-encode-region, ошибка сигнализируется, если в строке есть многобайтовый символ.
Обычно эта функция вставляет символы новой строки в закодированный текст, чтобы избежать слишком длинных строк. Однако, если необязательный аргумент no-line-break не равен nil, эти символы новой строки не добавляются, и результирующая строка представляет собой одну длинную строку.
Подобно base64-encode-string, но генерирует вариант base 64 для URL и не вставляет символы новой строки в закодированный текст, поэтому результат представляет собой одну длинную строку.
Если необязательный аргумент no-pad не равен nil, то эта функция не генерирует дополнение.
Эта функция преобразует область от beg до end из кода base 64 в соответствующий декодированный текст. Она возвращает длину декодированного текста.
Функции декодирования игнорируют символы новой строки в закодированном тексте.
Если необязательный аргумент base64url не равен nil, то дополнение является необязательным, и используется вариант base 64 для URL.
Если необязательный аргумент ignore-invalid не равен nil, то любые нераспознанные символы игнорируются.
Эта функция преобразует строку string из кода base 64 в соответствующий декодированный текст. Она возвращает однобайтовую строку, содержащую декодированный текст.
Функции декодирования игнорируют символы новой строки в закодированном тексте.
Если необязательный аргумент base64url не равен nil, то дополнение является необязательным, и используется вариант base 64 для URL.
Если необязательный аргумент ignore-invalid не равен nil, то любые нераспознанные символы игнорируются.
RFC, аббревиатура от Request for Comments, — это нумерованный информационный документ Интернета, описывающий стандарт. RFC обычно пишутся техническими экспертами по собственной инициативе и традиционно пишутся прагматично, основываясь на опыте.