Как перекодировать массив в Node.JS из CP1251 в UTF8?

151
23 июня 2019, 21:10

Есть массив (точнее объект), как изменить кодировку его элементов из CP1251 в UTF8?

Answer 1

Есть 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

Есть хорошая библиотека iconv-lite, написанная нашим соотечественником. Она на чистом js позволяет работать с огромным числом кодировок.

const iconv = require('iconv-lite');
const textCP1251 = 'Привет, РњРёСЂ'; // Привет, Мир в cp1251
console.log(iconv.encode(textCP1251, 'cp1251').toString()); // Привет, Мир в utf8
READ ALSO
Перезагрузка ресурсов на iOS

Перезагрузка ресурсов на iOS

Столкнулся с проблемой повторной загрузки ресурсов в iOS (iPhone 7)Разрабатываю большое SPA приложение, с предзагрузкой ресурсов(изобр

146
JS Как отформатировать 12345.00 в 123.45 (до сотых)? [закрыт]

JS Как отформатировать 12345.00 в 123.45 (до сотых)? [закрыт]

Простите за нубство, не знал, как загуглить, гугл выдаёт только "сокращение до сотых из 12345000123 до 12345

123
Дополненная реальность на сайте

Дополненная реальность на сайте

Хочу поинтересоватьсяМожно ли сделать на сайте (средствами js / сss), когда открывается камера, вставить объект и чтоб он завис в пространстве

171
Gmail API список писем

Gmail API список писем

https://developersgoogle

176