重大度レベル: 警告
デフォルト状態:常に有効
形容
このルールは、 about_ ヘルプファイルがUTF-8エンコーディングを使っていない場合を検出します。 このルールは、 about_ から .help.txt で終わるヘルプファイルがUTF-8エンコーディングで保存されていることを検証します。 StreamReaderクラスのCurrentEncodingプロパティを使ってファイルのエンコーディングをチェックします。
ヘルプファイルが正しいエンコーディングを使用していることを確認するために、以下のガイドラインに従ってください。
- PowerShellコマンドでファイルに書き込みを行う際は、エンコーディングパラメータを
utf8、utf8BOM、またはutf8NoBOMに設定します。 - テキストエディタでヘルプファイルを作成または編集する際は、UTF-8形式でファイルを保存するように設定してください。 ファイルのエンコード設定方法については、編集者のドキュメントを参照してください。
Example
非準拠
$helpText = @'
TOPIC
about_Contoso
SHORT DESCRIPTION
Describes Contoso commands.
'@
$helpText | Set-Content -Path "about_Contoso.help.txt" -Encoding Unicode
対応
$helpText = @'
TOPIC
about_Contoso
SHORT DESCRIPTION
Describes Contoso commands.
'@
$helpText | Set-Content -Path "about_Contoso.help.txt" -Encoding utf8NoBOM
ルールの設定
このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。
- 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
- 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。
こちらも参照ください
詳細については、次の記事を参照してください。
- System.IO.StreamReader
- about_Character_Encoding
- set-Content の
Visual Studio Code and PowerShell