Перейти к содержимому
Последнее обновление

TO_BASE64

Описание​

Функция TO_BASE64 преобразует входную строку в формат Base64. Base64 представляет собой способ кодирования на основе 64 печатных символов, который обычно используется для передачи данных в протоколах, не поддерживающих двоичные данные, например в электронной почте, параметрах URL, JSON и т. д. Эта функция соответствует стандарту RFC 4648 и использует стандартный набор символов Base64 (A-Z, a-z, 0-9, +, /) и символ заполнения (=).

Синтаксис​

TO_BASE64(<str>)

Параметры​

ПараметрОписание
<str>Строка для кодирования в Base64. Тип: VARCHAR

Возвращаемое значение​

Возвращает значение типа VARCHAR, содержащее строку в кодировке Base64.

Правила кодирования:

  • Использует стандартный набор символов Base64: A-Z, a-z, 0-9, +, /
  • Использует = в качестве символа заполнения, чтобы длина результата была кратна 4
  • Поддерживает корректное кодирование многобайтовых символов UTF-8
  • Результирующая строка содержит только печатные символы ASCII

Особые случаи:

  • Если входное значение равно NULL, возвращает NULL
  • Если входное значение является пустой строкой, возвращает пустую строку
  • Автоматически обрабатывает кодировку символов UTF-8
  • Длина результата всегда равна числу байтов входной строки, умноженному на 4/3 (с округлением вверх до значения, кратного 4)

Примеры​

  1. Базовое кодирование символов
SELECT TO_BASE64('1'), TO_BASE64('A');
+----------------+----------------+
| TO_BASE64('1') | TO_BASE64('A') |
+----------------+----------------+
| MQ== | QQ== |
+----------------+----------------+
  1. Кодирование строки из нескольких символов
SELECT TO_BASE64('234'), TO_BASE64('Hello');
+------------------+--------------------+
| TO_BASE64('234') | TO_BASE64('Hello') |
+------------------+--------------------+
| MjM0 | SGVsbG8= |
+------------------+--------------------+
  1. Обработка NULL и пустой строки
SELECT TO_BASE64(NULL), TO_BASE64('');
+-----------------+---------------+
| TO_BASE64(NULL) | TO_BASE64('') |
+-----------------+---------------+
| NULL | |
+-----------------+---------------+
  1. Кодирование длинной строки
SELECT TO_BASE64('Hello World'), TO_BASE64('The quick brown fox');
+-------------------------+-------------------------------+
| TO_BASE64('Hello World') | TO_BASE64('The quick brown fox') |
+-------------------------+-------------------------------+
| SGVsbG8gV29ybGQ= | VGhlIHF1aWNrIGJyb3duIGZveA== |
+-------------------------+-------------------------------+
  1. Числа и специальные символы
SELECT TO_BASE64('123456'), TO_BASE64('!@#$%^&*()');
+---------------------+------------------------+
| TO_BASE64('123456') | TO_BASE64('!@#$%^&*()') |
+---------------------+------------------------+
| MTIzNDU2 | IUAjJCVeJiooKQ== |
+---------------------+------------------------+
  1. Многобайтовые символы UTF-8
SELECT TO_BASE64('ṭṛì'), TO_BASE64('ḍḍumai hello');
+-------------------+---------------------------+
| TO_BASE64('ṭṛì') | TO_BASE64('ḍḍumai hello') |
+-------------------+---------------------------+
| 4bmt4bmbw6w= | 4bmN4bmNdW1haSBoZWxsbw== |
+-------------------+---------------------------+
  1. Кодирование адресов электронной почты
SELECT TO_BASE64('user@example.com'), TO_BASE64('admin.test@company.org');
+------------------------------+-----------------------------------+
| TO_BASE64('user@example.com') | TO_BASE64('admin.test@company.org') |
+------------------------------+-----------------------------------+
| dXNlckBleGFtcGxlLmNvbQ== | YWRtaW4udGVzdEBjb21wYW55Lm9yZw== |
+------------------------------+-----------------------------------+
  1. Кодирование данных JSON
SELECT TO_BASE64('{"name":"John","age":30}'), TO_BASE64('[1,2,3,4,5]');
+--------------------------------------+----------------------+
| TO_BASE64('{"name":"John","age":30}') | TO_BASE64('[1,2,3,4,5]') |
+--------------------------------------+----------------------+
| eyJuYW1lIjoiSm9obiIsImFnZSI6MzB9 | WzEsMiwzLDQsNV0= |
+--------------------------------------+----------------------+
  1. Строки разной длины и заполнение
SELECT TO_BASE64('a'), TO_BASE64('ab'), TO_BASE64('abc');
+----------------+-----------------+------------------+
| TO_BASE64('a') | TO_BASE64('ab') | TO_BASE64('abc') |
+----------------+-----------------+------------------+
| YQ== | YWI= | YWJj |
+----------------+-----------------+------------------+

Ключевые слова​

TO_BASE64, BASE64