Open xtqqczze opened 4 years ago
Probably best not to remove the BOM from PowerShell scripts. Any script that needs to be run by Windows PowerShell needs a BOM so that WinPS won't try to read it as CP-1252
@rjmholt The changed .ps1, .psd1 scripts are ASCII-safe. A good point that Windows PowerShell defaults to Windows-1252 though. [1]
[1]
Ha, yes, despite the attributions at the top, I wrote that doc
The changed .ps1, .psd1 scripts are ASCII-safe
Yes, they are for now, but the issue arises when people edit them
This repo contains 13 .ps1
files and 14 psd1
files, and 4 psm1
files. Currently only 2 of these files contain the BOM - I will exclude these from this PR.
Maybe we need to consider adding a BOM to the remaining PowerShell files. Alternatively, we could add a test to ensure all PowerShell files are ASCII-safe.
Maybe we need to consider adding a BOM to the remaining PowerShell files. Alternatively, we could add a test to ensure all PowerShell files are ASCII-safe.
Yeah, it sounds like adding the BOM would be a good idea. PSScriptAnalyzer exports this rule to assess scripts' need for a BOM.
Ah, so that's the purpose of UseBOMForUnicodeEncodedFile
😄
I think the best approach would be to check the PowerShell files are ASCII-safe with a Github action. However, in the short term, the simplest solution seems to be just to add the BOM to these files.
@rjmholt This PR is ready for review.
See also: PowerShell/PowerShell#11546