@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); // "Привет, мир!" |
@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.