Кодирование и декодирование Base64 в Vanilla JavaScript: методы и примеры

Под «Base64 JS Vanilla» подразумевается использование стандартного JavaScript (чистого JavaScript без каких-либо дополнительных библиотек или платформ) для кодирования и декодирования Base64. Вот несколько методов, которые вы можете использовать:

  1. Функции btoa() и atob(). Функция btoa() кодирует строку в Base64, а функция atob() декодирует строку в кодировке Base64 обратно в исходную форму.

Пример:

// Encoding
var encodedString = btoa('Hello, World!');
// Decoding
var decodedString = atob(encodedString);
  1. Кодировка UTF-8 и манипулирование строками. Вы можете вручную кодировать и декодировать строки, используя методы кодирования UTF-8 и манипуляции со строками.

Пример:

// Encoding
var encodedString = unescape(encodeURIComponent('Hello, World!'))
  .split('')
  .map(function (char) {
    return char.charCodeAt(0).toString(16);
  })
  .join('');
// Decoding
var decodedString = decodeURIComponent(
  escape(
    String.fromCharCode.apply(
      null,
      encodedString.match(/.{1,2}/g).map(function (byte) {
        return parseInt(byte, 16);
      })
    )
  )
);
  1. Функция TypedArrays и btoa(). Вы также можете использовать TypedArrays, например Uint8Array, для кодирования и декодирования строк с помощью функции btoa().

Пример:

// Encoding
var encoder = new TextEncoder();
var data = encoder.encode('Hello, World!');
var base64String = btoa(String.fromCharCode.apply(null, data));
// Decoding
var decodedData = atob(base64String);
var decoder = new TextDecoder();
var decodedString = decoder.decode(new Uint8Array(Array.from(decodedData).map(function (char) {
  return char.charCodeAt(0);
})));
  1. Использование объекта Buffer (Node.js). Если вы работаете с Node.js, вы можете использовать встроенный объект Buffer для кодирования и декодирования Base64.

Пример:

// Encoding
var encodedString = Buffer.from('Hello, World!').toString('base64');
// Decoding
var decodedString = Buffer.from(encodedString, 'base64').toString('utf-8');