Какую кодировку использует оператор переключения PowerShell при использовании -File? - PullRequest
0 голосов
/ 19 октября 2018

Какую кодировку использует оператор переключения PowerShell при использовании -File?Это в основном чтение из файла, поэтому я ожидал бы некоторый контроль над кодировкой, применяемой к прочитанным байтам?

Я имею в виду не Get-Content и т. Д., А оператор switch, например:

switch -File ~\Desktop\demo.md -Regex
{
    '^$'
    {
        'Blank line'
    }

    '^#\s(.*)$'
    {
        'Heading'
    }

    '^-(.*)$'
    {
        'Bulleted list'
    }

    default
    {
        'Normal line'
    }
}

Преобразование считанных байтов в интерпретируемые символы по определению использует определенную кодировку, верно?

1 Ответ

0 голосов
/ 24 октября 2018

Опция -file в коммутаторе используется редко, но дает преимущества в скорости и использовании памяти.Насколько я могу судить, точная кодировка в настоящее время недокументирована.

Пример, который мы используем на странице 171 PowerShell в третьем издании Action, использует Out-File для создания файла, который мы будем использовать в операторе switch.Out-File по умолчанию имеет значение Unicode, поэтому я собираюсь ASSUME , чтобы ключ -file также использовал Unicode.

Если вам нужно контролировать кодировку или файл не читается правильно, вернитесь к использованию Get-Content.

Я повторяю, что мое предположение о Unicode основано на информации справочной системы PowerShell, а не на каких-либо явных знаниях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...