Как перекодировать массив из cp1251 в utf8 в node.js?

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

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

Как перекодировать массив из cp1251 в utf8 в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от kennedi_pfeffer , год назад

@francis_schuster 

Можно использовать модуль iconv-lite:

1
2
3
4
const iconv = require('iconv-lite')
const cp1251EncodedBuffer = Buffer.from([/* массив в cp1251 */])
const utf8EncodedBuffer = iconv.decode(cp1251EncodedBuffer, 'win1251')
const utf8EncodedArray = Array.from(utf8EncodedBuffer)


В этом примере cp1251EncodedBuffer -- это исходный массив, закодированный в cp1251, а переменная utf8EncodedArray содержит тот же массив, но перекодированный в UTF-8. Сначала iconv.decode преобразует массив байтов в строку с помощью указанной кодировки (win1251 это псевдоним для cp1251), а затем Array.from преобразует строку в массив чисел Unicode, соответствующих символам UTF-8.

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

от krista , 13 дней назад

@francis_schuster 

Важно отметить, что для использования модуля iconv-lite вам нужно предварительно установить его через npm:

1
npm install iconv-lite