Re: phantomjs виводить крякозябри замість української мови
Хай. Завантажую через phantomjs сторінку і парсю через jquery, виводячи деякі значення, з латинкою працює нормально, а от чудову українську не виводе, замість неї виводе ось таке
╨Я╨░╨▓╨╗╨╛ ╨Ч╤Ц╨▒╤А╨╛╨▓
Я пробував запускати з опцією
--output-encoding=utf8
та воно не допомогло.
Як то похвіксити?
Судячи з вигляду, консоль взагалі в CP866.
вирішив записати дані в файл, то все нормально відображається.
Отожбо.
Саме тому в одній консольній програмі, в її win-варіанті, у мене (то C++, а чи можна достукатися з того phantomjs до рідно-віндової CharToOem, яка знає про те, в яку кодову сторінку встановлено консоль, не знаю)
if (stdout_tty)
CharToOem(buf, buf);
А вже stdout_tty то булевське поле у класі, яке при запуску програми ініціалізується так
console_t::console_t()
: stdout_tty(isatty(fileno(stdout)))
, stderr_tty(isatty(fileno(stderr)))
, log_level(info)
В результаті якщо програма запускається без перенаправлення вводу-виводу, то воно лупить в консольному кодуванні, якщо ж перенаправлено у файл (або перехоплено оболонкою, яка запускає програму), то у загальновіндовому.