Есть массив (точнее объект), как изменить кодировку его элементов из CP1251 в UTF8?
Есть 2 способа сделать это.
API node.js включает в себя стандартный способ работы с кодировками.
const { TextDecoder } = require('util');
const textCP1251 = 'Привет, РњРёСЂ'; // Привет, Мир в cp1251
const decoder = new TextDecoder('cp1251');
console.log(decoder.decode(textCP1251));
Однако проблема в том, что для этого способа требуется библиотека icu, собранная со всеми кодировками. В дефолтной поставке nodejs она идёт с ограниченным набором кодировок и cp1251 в этот набор не входит.
Есть хорошая библиотека iconv-lite, написанная нашим соотечественником. Она на чистом js позволяет работать с огромным числом кодировок.
const iconv = require('iconv-lite');
const textCP1251 = 'Привет, РњРёСЂ'; // Привет, Мир в cp1251
console.log(iconv.encode(textCP1251, 'cp1251').toString()); // Привет, Мир в utf8
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости