Преобразует буфер двоичных данных в формат Base64. Полученный текст разбивается на строки длиной 64 символа. В качестве разделителя строк используется сочетание символов CR+LF. Если целевой декодер Base64 не поддерживает переводы строк, требуется дополнительно обработать строки, чтобы удалить из нее разделители.
Синтаксис
ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных(<Буфер>)Полное описание, параметры и ограничения
Глобальный контекст.ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных (Global context.GetBase64BinaryDataBufferFromBinaryDataBuffer)
Глобальный контекст (Global context)
ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных (GetBase64BinaryDataBufferFromBinaryDataBuffer)
Доступен, начиная с версии 8.3.10.
Синтаксис:
ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных(<Буфер>)
Параметры:
<Буфер> (обязательный)
Тип: БуферДвоичныхДанных.
Буфер двоичных данных.
Возвращаемое значение:
Тип: БуферДвоичныхДанных.
Описание:
Преобразует буфер двоичных данных в формат Base64.
Полученный текст разбивается на строки длиной 64 символа. В качестве разделителя строк используется сочетание символов CR+LF.
Если целевой декодер Base64 не поддерживает переводы строк, требуется дополнительно обработать строки, чтобы удалить из нее разделители.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.10.
Методическая информация
Практические примеры
Передать байты как Base64 или показать их в Hex
Для JSON удобно строковое Base64, для диагностики — Hex. Отдельно демонстрируем варианты, где результат хранится буфером или двоичными данными.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Серверный контекст. Учебная строка abc кодируется в UTF-8 без BOM.
В примере стандартное Base64, не вариант base64url для URL или токенов.
Данные = ПолучитьДвоичныеДанныеИзСтроки("abc", КодировкаТекста.UTF8, Ложь);
Буфер = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Данные);
Base64Текст = ПолучитьBase64СтрокуИзДвоичныхДанных(Данные);
HexТекст = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
Сообщить(Base64Текст);
Сообщить(HexТекст);
ИзBase64 = ПолучитьДвоичныеДанныеИзBase64Строки(Base64Текст);
ИзHex = ПолучитьБуферДвоичныхДанныхИзHexСтроки(HexТекст);
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(ИзBase64, КодировкаТекста.UTF8));
Сообщить(ПолучитьСтрокуИзБуфераДвоичныхДанных(ИзHex, КодировкаТекста.UTF8));
Base64Буфер = ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных(Буфер);
ВосстановленныйБуфер = ПолучитьБуферДвоичныхДанныхИзBase64БуфераДвоичныхДанных(Base64Буфер);
Base64Данные = ПолучитьBase64ДвоичныеДанныеИзДвоичныхДанных(Данные);
ВосстановленныеДанные = ПолучитьДвоичныеДанныеИзBase64ДвоичныхДанных(Base64Данные);
HexБуфер = ПолучитьHexБуферДвоичныхДанныхИзБуфераДвоичныхДанных(Буфер);
БуферПослеHex = ПолучитьБуферДвоичныхДанныхИзHexБуфераДвоичныхДанных(HexБуфер);
HexДанные = ПолучитьHexДвоичныеДанныеИзДвоичныхДанных(Данные);
ДанныеПослеHex = ПолучитьДвоичныеДанныеИзHexДвоичныхДанных(HexДанные);
Сообщить(ПолучитьBase64СтрокуИзБуфераДвоичныхДанных(ВосстановленныйБуфер) = Base64Текст);
Сообщить(ПолучитьHexСтрокуИзДвоичныхДанных(ВосстановленныеДанные) = HexТекст);
Сообщить(ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферПослеHex, КодировкаТекста.UTF8));
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(ДанныеПослеHex, КодировкаТекста.UTF8));
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзHexСтроки(HexТекст), КодировкаТекста.UTF8));
Сообщить(ПолучитьСтрокуИзБуфераДвоичныхДанных(ПолучитьБуферДвоичныхДанныхИзBase64Строки(Base64Текст), КодировкаТекста.UTF8));
Сообщить(Base64Строка(Данные) = Base64Текст);
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(Base64Текст), КодировкаТекста.UTF8));Разбор по шагам
Получаем три байта abc и показываем строковые Base64 и Hex.
Декодируем строковые представления и проверяем исходный текст.
Буферные и двоичные варианты кодирования содержат символы кодированного представления, а не исходные три байта.
Декодируем каждый вариант; Base64Строка и Base64Значение показывают старые краткие функции для двоичных данных.
Как проверить результат
Base64 равно YWJj, Hex равно 616263.
Все обратные преобразования выводят abc, сравнения представлений дают Истина.
Не передавайте Hex-строку декодировщику Base64: это другой формат и другой смысл байтов.
Ожидаемый результат
Каждый показанный формат восстанавливает исходные байты при использовании парной функции.
На что обратить внимание
Base64 не шифрует и не защищает данные: любой получатель может их восстановить.
Двоичное содержимое Base64Данные — кодированное представление. Для HTTP-заголовка или JSON обычно нужна строковая функция.
При работе с чужим API не заменяйте Base64 на base64url вручную без проверки его контракта.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.