Как записать csv с кодировкой windows-1251



  • Собственно вопрос в названии темы,кто вкурсе подскажите как это в басе сделать?



  • @avtopars Используйте поиск. Первая же ссылка.



  • @avtopars
    самокат немой

    //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
    

    но смысл тот же
    получить для символа чаркод и сменить его на чаркод в нужной кодировки

    вероятно есть модули для ноды



  • @ruzne

    Обясните пожалуйста что с этим кодом делать,как применить ?
    Допустим есть файл 111.csv как указать что именно его нужно конвертировать?

    Ну и раз пришли к решению то вылезла еще 1 проблема, в цсв пишутся данные многопотоком из этого следует что по окончанию всех потоков нужно сконвертировать файл.
    Каким образом дождаться выполнения всех потоков, как отловить этот момент?



  • @avtopars
    дак файл нужно конвертировать или в файл нужно записать данные в 1251?
    я же как вопрос в названии прочитал так и понял, а вопрос собственно там.

    выполнить код



  • @ruzne said in Как записать csv с кодировкой windows-1251:

    @avtopars
    дак файл нужно конвертировать или в файл нужно записать данные в 1251?
    я же как вопрос в названии прочитал так и понял, а вопрос собственно там.

    выполнить код

    Ну файл не принципиально,я просто так себе это представлял по опыту из первого сообщения.
    Если в Вашем примере данные в переменной конвертируются - меня устраивает вполне.
    Пдскажите что нужно поменять на переменную которая будет конвертироваться?
    var bb на var нужная, этого достаточно? или все где встречается bb?



  • @avtopars
    это функция, функцию нужно вызывать передать ей пораметры она вернет результат,
    да можно, но тогда еще нужно убрать завертываение в функцию и аа надо пименять на var от куда надо, этого будет достаточно



  • @ruzne

    Не могли бы Вы приложить проект с реализацией?
    Только разбираюсь в бас и многие вещи ставят в ступор. На примре легче понимать суть.
    Буду Вам очень благодарен за помощь.
    Как вызвать, передать параметры это пока ступор для меня.



  • @avtopars 0_1528118216839_utfTo1251.xml
    я думаю вариант с утилитой командной строки из предложения @fox им подойдет больше



  • Видимо вопрос не правильно поставлен так как проблема не решена...
    Вот результат кирилицы с вашего примера открытый в екселе.
    http://prntscr.com/jqoq3v

    Вопрос как писать данные так чтоб ексель при открытии понимал кирилицу? а не выдавал эти кряказябрики.



  • @avtopars
    смысл в том чтобы допустим в utf8 'я' это 1103, а в 1251 это 255
    а например латинские цифры и арабские буквы что там что там
    1103-848 == 255
    что бас по итогу сохранить я хз, но скорее всего 'ÿ'
    я хз поробуй 64 к чаркоду прибавить, но тоесть не - 848 а -848+64


Log in to reply