Как стать автором
Обновить

Комментарии 10

Интересно а эти же проблемы windows 7 касаются?
Кстати может это фича?
PS а чего на первых снимках экрана версия 0.6.2, а затем уже 0.6.3?
У кого есть Windows 7, да проверит.

Это не может быть фичею, потому что никакой пользы — один вред.

Версия переменилася в силу апгрейда. Я ж и начал с того, что вышла новая версия; вполне естественно, что выкачал и поставил.
Насчет фичи я про " Мы подавали эту команду в дочернем процессе и были намерены переменить кодировку текста, выводимого командою «dir» — однако команда «chcp» подействовала и на родительскую консоль!"
Ну а по 0.6.2 сказал так как в заголовке 0.6.3, а в тексте не было указано что сидел вечером работал с 0.6.2… а потом решил обновиться проблема осталась.
В общем по проблеме скажу, я бы лучше писал в сторону создание утилитки для самой винды которая обходила эту проблему, чем плодил бы костыли в коде, уменьшая его переносимость.
Я не сказал в явном виде, но это само собою разумеется: уж конечно, я упомянул бы эти баги иначе и радостнее, кабы во вчерашней же версии Node.js нашёл их исправленными.
Господи, вы хотите прицепить Node.JS к трупу Фидонета? Зачем?
Во-первых, Фидонет отнюдь не труп и даже саморекламируется в Ярославле — вот поглядите.

Во-вторых, название уж больно хорошее :-)

Я помню времена, когда термин «node», если употреблялся без уточнения, в российском околокомпьютерном мире по умолчанию означал узел Сети Фидонет.
Чтобы был гипертекстовый векторный неблокирующий Фидонет.
Изменения не очень значительны

Хм… ну как минимум то, что npm наконец-то под винду заработал, уже можно считать вполне себе значительным изменением
Во-вторых, если дочерний консольный процесс изменит кодировку консоли, то будет воздействовать и на кодировку консоли родительского процесса Node (в частности, на вывод методом console.log) — получается, что консоль у них одна и та же, или что-то в этом же дýхе.

Именно так, консоль одна и та же, она наследуется дочерним процессом. Ничего удивительного в этом нет, это нельзя назвать «ошибкой» в Node.JS, и я не думаю, что с этим нужно что-то делать.

Что касается первой проблемы, то обращу внимание на родной виндовый JS-интерпретатор — cscript.exe. У него есть специальный ключ, указывающий, какого вывода ожидать от дочерних консольных процессов — юникодного или же однобайтового. Вероятно разработчикам Node следует поступить аналогично.
Проблема немного надуманна.

Эти строки всё объясняют:

        var splitter = child_process.spawn(splitterScript, params);

        splitter.stderr.addListener('data', function(data)
        {
                console.log(data.toString('utf-8'));
        });
        splitter.stdout.addListener('data', function(data)
        {
                console.log(data.toString('utf-8'));
        });


Как видите, есть подход, когда вы получаете сырые данные, и интерпретируете их, как вам угодно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории