Проблема с кодированием, если я помещаю свой код в модуль или другой файл ps1

#windows #powershell #visual-studio-code #encoding

#Windows #powershell #visual-studio-code #кодирование

Вопрос:

Мой код хорошо работал со специальными символами. Я мог бы использовать Write-Host "é" без каких-либо проблем.

А затем я переместил некоторые из своих функций в другой файл PS1, который я «поставил в точку» (использование Import-Module делает то же самое), и я получил ошибки кодирования: prénom стал prénom

Я ничего не понимаю в кодировании. VS Code не позволяет мне изменять кодировку файла. У него есть параметр для установки кодировки по умолчанию, но по умолчанию используется UTF8, и когда я устанавливаю Windows1252, он ничего не меняет. Если я использую Geany для обновления кодировки до Windows1252, это работает… пока я снова не сохраню файл с помощью VS Code.

Все работало хорошо, когда весь мой код был в одном файле. Почему создание этого второго файла .ps1 (который я создал из проводника Windows) может быть проблемой?

Работает на Windows 10, на французском языке, с VS Code 1.50.

Заранее благодарю вас

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

1. Windows Powershell ( powershell.exe или встроенная консоль) настаивает на utf8bom кодировании скрипта, в отличие от Powershell Core ( pwsh.exe ).

2. Как вы «переместили некоторые функции в другой файл PS1» — это было сделано вручную с помощью VSCode?

3. Да, вырезать / вставить из одного файла в другой. Сначала я создал файл из проводника Windows, затем открыл его в VS Code, затем вырезал / вставил.

4. @JosefZ что вы подразумеваете под «настаивает»? Встроенная консоль должна быть консолью, используемой в VS Code для выполнения скрипта. Значит, для этого требуется использовать кодировку utf8bom? Но почему эта встроенная консоль работает хорошо, если скрипт находится только в одном файле, но не в том случае, если он разделен?

5. @BrianReynolds спасибо. Это то, что я искал. Если я удаляю UTF8Bom, он завершается ошибкой при первом символе двойной кавычки, что странно.