Не удалось повторить вашу проблему:
image.png
Она ещё актуальна? Если да, прикрепите тестовый проект, в которм повторяется эта ошибка. Или напишите на каком сайте и с какими настройками действия получения кода используется проект.
//utf8 to 1251 converter (1 byte format, RU/EN support only + any other symbols) by drgluck
function utf8_decode (aa) {
var bb = '', c = 0;
for (var i = 0; i < aa.length; i++) {
c = aa.charCodeAt(i);
if (c > 127) {
if (c > 1024) {
if (c == 1025) {
c = 1016;
} else if (c == 1105) {
c = 1032;
}
bb += String.fromCharCode(c - 848);
}
} else {
bb += aa.charAt(i);
}
}
return bb;
}
посимвольно
1234qwetyйцуекеЭZ
313233347177657479D0B9D186D183D0B5D0BAD0B5D0AD5A
1234qwetyéöóåêåÝZ
313233347177657479C3A9C3B6C3B3C3A5C3AAC3A5C39D5A
здрасте, а должно получится
313233347177657479D0B9D186D183D0B5D0BAD0B5D0AD5A
но смысл тот же
получить для символа чаркод и сменить его на чаркод в нужной кодировки
вероятно есть модули для ноды
Обясните пожалуйста что с этим кодом делать,как применить ?
Допустим есть файл 111.csv как указать что именно его нужно конвертировать?
Ну и раз пришли к решению то вылезла еще 1 проблема, в цсв пишутся данные многопотоком из этого следует что по окончанию всех потоков нужно сконвертировать файл.
Каким образом дождаться выполнения всех потоков, как отловить этот момент?
@ruzne said in Как записать csv с кодировкой windows-1251:
@avtopars
дак файл нужно конвертировать или в файл нужно записать данные в 1251?
я же как вопрос в названии прочитал так и понял, а вопрос собственно там.выполнить код
Ну файл не принципиально,я просто так себе это представлял по опыту из первого сообщения.
Если в Вашем примере данные в переменной конвертируются - меня устраивает вполне.
Пдскажите что нужно поменять на переменную которая будет конвертироваться?
var bb на var нужная, этого достаточно? или все где встречается bb?
Не могли бы Вы приложить проект с реализацией?
Только разбираюсь в бас и многие вещи ставят в ступор. На примре легче понимать суть.
Буду Вам очень благодарен за помощь.
Как вызвать, передать параметры это пока ступор для меня.
Видимо вопрос не правильно поставлен так как проблема не решена...
Вот результат кирилицы с вашего примера открытый в екселе.
http://prntscr.com/jqoq3v
Вопрос как писать данные так чтоб ексель при открытии понимал кирилицу? а не выдавал эти кряказябрики.
@avtopars
смысл в том чтобы допустим в utf8 'я' это 1103, а в 1251 это 255
а например латинские цифры и арабские буквы что там что там
1103-848 == 255
что бас по итогу сохранить я хз, но скорее всего 'ÿ'
я хз поробуй 64 к чаркоду прибавить, но тоесть не - 848 а -848+64