ExternalList, Powershell и 1C (кодировка)

Started by Evgeniy Skoropadskiy, June 29, 2020, 12:12:38 PM

Previous topic - Next topic

Evgeniy Skoropadskiy

Здравствуйте, Коллеги!

Разработал скрипт для мониторинга серверов 1С через COM на Powershell.
Столкнулся со следующей проблемой:
1. На сервере Windows Server 2016 работает все отлично;
2. На сервере Windows 2012 R2 проблемы с кодировкой;

Для Instance Discovery сделал функцию, которая выдает список кластеров 1С. На 2012R2 получаю кракозябры при этом на 2016 проблем нет.
В самом скрипте есть следующая строка определяющаю кодировку вывода:
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("windows-1251")

Пробовал менять кодировки, пробовал конвертировать сам текст в разные кодировки и разные комбинации с кодировкой вывода - разультат отрицательный.

Куда дальше копать не знаю. Может у кого-то есть идеи?

Victor Kirhenshtein

А какая стоит системная кодировка на этой машине (code page for non-UNICODE programs вроде называлось)?

Evgeniy Skoropadskiy

Русский (см. вложение)

Filipp Sudanov

А если вы запускаете этот скрипт просто из консоли на 2012 R2, то вывод правильный, без кракозябр?

Evgeniy Skoropadskiy

Правильный, только надо шрифт изменить.

Filipp Sudanov


Victor Kirhenshtein

Попробуйте обновить агент до версии 3.4.310 и поменять кодировку скрипта на UTF-8.

Evgeniy Skoropadskiy

Спасибо! Попробую - отпишусь!

TOLeg

попробуйте так
[Text.Encoding]::UTF8

у меня работает , где надо указываю переменную
$En = [Text.Encoding]::UTF8