Здравствуйте, Коллеги!
Разработал скрипт для мониторинга серверов 1С через COM на Powershell.
Столкнулся со следующей проблемой:
1. На сервере Windows Server 2016 работает все отлично;
2. На сервере Windows 2012 R2 проблемы с кодировкой;
Для Instance Discovery сделал функцию, которая выдает список кластеров 1С. На 2012R2 получаю кракозябры при этом на 2016 проблем нет.
В самом скрипте есть следующая строка определяющаю кодировку вывода:
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("windows-1251")
Пробовал менять кодировки, пробовал конвертировать сам текст в разные кодировки и разные комбинации с кодировкой вывода - разультат отрицательный.
Куда дальше копать не знаю. Может у кого-то есть идеи?
А какая стоит системная кодировка на этой машине (code page for non-UNICODE programs вроде называлось)?
Русский (см. вложение)
А если вы запускаете этот скрипт просто из консоли на 2012 R2, то вывод правильный, без кракозябр?
Правильный, только надо шрифт изменить.
На какой именно?
Попробуйте обновить агент до версии 3.4.310 и поменять кодировку скрипта на UTF-8.
Спасибо! Попробую - отпишусь!
попробуйте так
[Text.Encoding]::UTF8
у меня работает , где надо указываю переменную
$En = [Text.Encoding]::UTF8