Преобразование двоичных файлов JavaScript в Base64: методы и примеры

Вот несколько способов преобразования двоичного кода в base64 в JavaScript:

Метод 1: использование функций btoa()и Uint8Array

function binaryToBase64(binary) {
  const bytes = new Uint8Array(binary.length);
  for (let i = 0; i < binary.length; i++) {
    bytes[i] = binary.charCodeAt(i);
  }
  return btoa(String.fromCharCode.apply(null, bytes));
}

Метод 2: использование метода Buffer.from()(Node.js)

const binaryToBase64 = (binary) => {
  const buffer = Buffer.from(binary, 'binary');
  return buffer.toString('base64');
};

Метод 3. Использование функций TextEncoderи btoa()(современные браузеры)

const binaryToBase64 = (binary) => {
  const encoder = new TextEncoder();
  const data = encoder.encode(binary);
  const base64 = btoa(String.fromCharCode.apply(null, data));
  return base64;
};

Метод 4. Использование функций btoa()и Blob(только для браузера)

const binaryToBase64 = (binary) => {
  const blob = new Blob([binary]);
  return new Promise((resolve) => {
    const reader = new FileReader();
    reader.onloadend = () => resolve(reader.result);
    reader.readAsDataURL(blob);
  });
};

Метод 5: использование функций ArrayBufferи btoa()

function binaryToBase64(binary) {
  const buffer = new ArrayBuffer(binary.length);
  const bytes = new Uint8Array(buffer);
  for (let i = 0; i < binary.length; i++) {
    bytes[i] = binary.charCodeAt(i);
  }
  return btoa(String.fromCharCode.apply(null, new Uint8Array(buffer)));
}