Вот несколько способов преобразования двоичного кода в 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)));
}