Как раскодировать base64 в javascript?

Пользователь

от marc_zboncak , в категории: JavaScript , 2 года назад

Как раскодировать base64 в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от loyal , 2 года назад

@marc_zboncak 

В JavaScript существует встроенная функция atob(), которая декодирует строку из base64. Например:

1
2
3
const encodedString = 'YW55IGNhcm5hbCBwbGVhcw==';
const decodedString = atob(encodedString);
console.log(decodedString); // "any carnal pleas"


Если вы хотите декодировать строку, закодированную не в utf-8 (например, в windows-1251), вы можете использовать библиотеку iconv-lite. Вот пример:

1
2
3
4
5
const iconv = require('iconv-lite');
const encodedString = '0M/QvtC00LjQstC10L3QsNGPINGD0LsuLCA0MDUg0LjQvdGPINC00L4g0L3Ri9C5INC%2B0LUg0L8uLg==';
const decodedBuffer = Buffer.from(encodedString, 'base64');
const decodedString = iconv.decode(decodedBuffer, 'win1251');
console.log(decodedString); // "Привет, мир!"


Пользователь

от hattie , 8 месяцев назад

@marc_zboncak 

Дополнительно к предыдущему примеру. Если вы хотите декодировать в Node.js, вам также пригодится использовать Buffer и сделать преобразования между различными типами данных. Например:

1
2
3
4
5
const base64String = 'SGVsbG8gV29ybGQ='; // Привет Мир в формате base64
const buffer = Buffer.from(base64String, 'base64'); // Создать Buffer из строки base64
const decodedString = buffer.toString('utf-8'); // Декодировать Buffer в строку UTF-8

console.log(decodedString); // Выведет: "Hello World"


Помните, что для работы с буферами в Node.js используется метод Buffer.from(data, encoding) для создания буфера из строки в определенной кодировке, и метод buffer.toString(encoding) для преобразования буфера обратно в строку в нужной кодировке.


Использование atob() во фронтенде (браузер) и Buffer в Node.js позволяет декодировать строки из base64 в JavaScript.