Node js windows 1251 encoding

Пример того, как преобразовать в Node.js кодировку windows-1251 в UTF-8.

Подобное преобразование актуально, если вы парсите сайты, у которых кодировка windows-1251 и с текстом на русском языке.

const iconv = require(‘iconv-lite’)

var body = iconv.encode (iconv.decode (new Buffer (body, ‘binary’), ‘win1251’), ‘utf8’)

Пример загрузки страницы и преобразования кодировки

request({

         uri: url,

         method: ‘GET’,

         encoding: ‘binary’

        }, function (error, response, body) {

if(!error && response.statusCode===200){

var body = iconv.encode (iconv.decode (new Buffer (body, ‘binary’), ‘win1251’), ‘utf8’)

var $ = cheerio.load(body) //Это строчка, если будете работать с Jquery

}

}

)

Есть строка жс которую нужно сохранить как есть в файл. Как это можно сделать локально без сервера в кодировке Windows-1251/ANSI/CP1251?

Она хорошо отрабатывает, но единственное не правильно отображает букву Ё
Кодирует её как E1 или @1

spoiler

0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
10: 10,
11: 11,
12: 12,
13: 13,
14: 14,
15: 15,
16: 16,
17: 17,
18: 18,
19: 19,
20: 20,
21: 21,
22: 22,
23: 23,
24: 24,
25: 25,
26: 26,
27: 27,
28: 28,
29: 29,
30: 30,
31: 31,
32: 32,
33: 33,
34: 34,
35: 35,
36: 36,
37: 37,
38: 38,
39: 39,
40: 40,
41: 41,
42: 42,
43: 43,
44: 44,
45: 45,
46: 46,
47: 47,
48: 48,
49: 49,
50: 50,
51: 51,
52: 52,
53: 53,
54: 54,
55: 55,
56: 56,
57: 57,
58: 58,
59: 59,
60: 60,
61: 61,
62: 62,
63: 63,
64: 64,
65: 65,
66: 66,
67: 67,
68: 68,
69: 69,
70: 70,
71: 71,
72: 72,
73: 73,
74: 74,
75: 75,
76: 76,
77: 77,
78: 78,
79: 79,
80: 80,
81: 81,
82: 82,
83: 83,
84: 84,
85: 85,
86: 86,
87: 87,
88: 88,
89: 89,
90: 90,
91: 91,
92: 92,
93: 93,
94: 94,
95: 95,
96: 96,
97: 97,
98: 98,
99: 99,
100: 100,
101: 101,
102: 102,
103: 103,
104: 104,
105: 105,
106: 106,
107: 107,
108: 108,
109: 109,
110: 110,
111: 111,
112: 112,
113: 113,
114: 114,
115: 115,
116: 116,
117: 117,
118: 118,
119: 119,
120: 120,
121: 121,
122: 122,
123: 123,
124: 124,
125: 125,
126: 126,
127: 127,
1027: 129,
8225: 135,
1046: 198,
8222: 132,
1047: 199,
1168: 165,
1048: 200,
1113: 154,
1049: 201,
1045: 197,
1050: 202,
1028: 170,
160: 160,
1040: 192,
1051: 203,
164: 164,
166: 166,
167: 167,
169: 169,
171: 171,
172: 172,
173: 173,
174: 174,
1053: 205,
176: 176,
177: 177,
1114: 156,
181: 181,
182: 182,
183: 183,
8221: 148,
187: 187,
1029: 189,
1056: 208,
1057: 209,
1058: 210,
8364: 136,
1112: 188,
1115: 158,
1059: 211,
1060: 212,
1030: 178,
1061: 213,
1062: 214,
1063: 215,
1116: 157,
1064: 216,
1065: 217,
1031: 175,
1066: 218,
1067: 219,
1068: 220,
1069: 221,
1070: 222,
1032: 163,
8226: 149,
1071: 223,
1072: 224,
8482: 153,
1073: 225,
8240: 137,
1118: 162,
1074: 226,
1110: 179,
8230: 133,
1075: 227,
1033: 138,
1076: 228,
1077: 229,
8211: 150,
1078: 230,
1119: 159,
1079: 231,
1042: 194,
1080: 232,
1034: 140,
1025: 168,
1081: 233,
1082: 234,
8212: 151,
1083: 235,
1169: 180,
1084: 236,
1052: 204,
1085: 237,
1035: 142,
1086: 238,
1087: 239,
1088: 240,
1089: 241,
1090: 242,
1036: 141,
1041: 193,
1091: 243,
1092: 244,
8224: 134,
1093: 245,
8470: 185,
1094: 246,
1054: 206,
1095: 247,
1096: 248,
8249: 139,
1097: 249,
1098: 250,
1044: 196,
1099: 251,
1111: 191,
1055: 207,
1100: 252,
1038: 161,
8220: 147,
1101: 253,
8250: 155,
1102: 254,
8216: 145,
1103: 255,
1043: 195,
1105: 184,
1039: 143,
1026: 128,
1106: 144,
8218: 130,
1107: 131,
8217: 146,
1108: 186,
1109: 190,

У неё тоже 1 минус это после каждого перехода строки проставляет %A, а так Ё отображает корректно

Есть ли способ просто взять строку ЖСа и сохранить как есть в файл .XML в кодировке Windows-1251/ANSI/CP1251?

Search code, repositories, users, issues, pull requests…

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

I need to convert a string from Windows-1251 to UTF-8.

I tried to do this with iconv, but all I get is something like this:

пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ

var iconv = new Iconv('windows-1251', 'utf-8')
title = iconv.convert(title).toString('utf-8')

Pang's user avatar

Pang

9,623146 gold badges81 silver badges122 bronze badges

asked Jan 1, 2012 at 13:52

user1125115's user avatar

1

Here is working solution to your problem. You have to use Buffer and convert your string to binary first.

const Iconv = require('iconv').Iconv;

request({ 
    uri: website_url,
    method: 'GET',
    encoding: 'binary'
}, function (error, response, body) {

        const body = new Buffer(body, 'binary');
        conv = Iconv('windows-1251', 'utf8');
        body = conv.convert(body).toString();

});

Ahmet Şimşek's user avatar

Ahmet Şimşek

1,4111 gold badge15 silver badges24 bronze badges

answered Jan 29, 2012 at 0:20

Alex Kolarski's user avatar

Alex KolarskiAlex Kolarski

3,2651 gold badge25 silver badges35 bronze badges

1

If you’re reading from file, you could use something like that:

const iconv = require('iconv-lite');
const fs = require("fs");

fs.readFile("filename.xml", null, (err, data) => { 
    if(err) { 
        console.log(err)
        return
    }

    const encodedData = iconv.encode(iconv.decode(data, 'win1251'), 'utf8')
    fs.writeFile("result_filename.xml", encodedData, () => { })
})

answered Jul 14, 2021 at 18:27

Konstantin Nikolskii's user avatar

I use Node version 16 and code bellow works fine. You don’t need to use Buffer node will write warnings. You need to install iconv package before.

        fs = require('fs')
        fs.readFile('printed_document.txt', function (err,data) {
            if (err) {
                return console.log(err);
            }
            console.log(require('iconv').Iconv('windows-1251', 'utf-8').convert(data).toString())
        })

answered Oct 13, 2022 at 13:44

Orlov Const's user avatar

Orlov ConstOrlov Const

3323 silver badges10 bronze badges

Node.js — мощная платформа, которая позволяет разрабатывать серверные приложения, выполнять скрипты на стороне сервера и многое другое. Одним из распространенных вопросов, которые возникают при работе с Node.js, является сохранение файлов в определенной кодировке, в данной статье мы рассмотрим, как сохранить файл в кодировке windows-1251.

Первым шагом для сохранения файла в определенной кодировке в Node.js является использование модуля fs. Модуль fs в Node.js предоставляет ряд методов для работы с файловой системой. Один из таких методов — fs.writeFileSync() — позволяет нам синхронно записать данные в файл.

Для начала нам нужно создать текстовый файл, данные которого мы хотим сохранить в кодировке windows-1251. Мы создадим простой текстовый файл с именем test.txt и добавим в него несколько строк текста для демонстрации:

const fs = require('fs');

const data = 'Привет, мир!';

fs.writeFileSync('test.txt', data);

Теперь, когда у нас есть файл с данными, нам нужно сохранить его в кодировке windows-1251. Для этого мы воспользуемся модулем iconv-lite. Модуль iconv-lite является частью API Node.js и предоставляет методы для преобразования данных из одной кодировки в другую.

Установим модуль iconv-lite с помощью npm команды:

npm install iconv-lite

После установки модуля iconv-lite, мы можем использовать его для преобразования данных в кодировку windows-1251 и сохранения файла:

const fs = require('fs');
const iconv = require('iconv-lite');

const data = 'Привет, мир!';
const encodedData = iconv.encode(data, 'win1251');

fs.writeFileSync('test.txt', encodedData);

В приведенном выше примере мы используем функцию iconv.encode(), чтобы преобразовать данные в кодировку windows-1251. Затем мы используем fs.writeFileSync() для сохранения закодированных данных в файл test.txt.

Теперь, когда мы запустим этот код, мы получим файл test.txt с данными, записанными в кодировке windows-1251. Вы можете проверить это, открыв файл в текстовом редакторе или просматривая его содержимое в вашей программе.

Node.js предоставляет мощные инструменты для работы с файловой системой и кодировками. С использованием модуля fs и модуля iconv-lite, вы можете легко сохранить файл в необходимой вам кодировке, включая кодировку windows-1251.

В этой статье мы рассмотрели, как сохранить файл в кодировке windows-1251 в Node.js с использованием модулей fs и iconv-lite. Надеюсь, это будет полезно для ваших проектов на Node.js.

  • Node js version manager windows
  • Nokia lumia 830 windows 10
  • Node path node js windows
  • Nokia pc suite windows 10 x64 скачать с официального
  • Node js start server windows