Windows PowerShellでUTF8形式のファイルを表示すると文字化けするので、エンコードをUTF8に変更します。ただ、エンコードをUTF8に変更しただけでは、UTF8(BOMなし)は文字化けしてしまいます。
そこで、Windows PowerShellで設定をするのは面倒なので、PowerShell Coreをインストールすることによって、UTF8(BOMなし)の文字化け問題に対応します。
もくじ
Windows PowerShellの文字コードをUTF8に設定
一時的にUTF8に設定
現在の文字コードを確認して、UTF8に変更します。
ただし、Windows PowerShellを再起動すると、文字コードはUTF8から元に戻ってしまいます。
$OutputEncoding.EncodingName
$OutputEncoding = [System.Text.Encoding]::GetEncoding('utf-8')
PS C:\Users\dattesar> $OutputEncoding.EncodingName
US-ASCII
PS C:\Users\dattesar> $OutputEncoding = [System.Text.Encoding]::GetEncoding('utf-8')
PS C:\Users\dattesar> $OutputEncoding.EncodingName
Unicode (UTF-8)
常にUTF8に設定する場合
Windows PowerShellの文字コードを常にUTF8に設定する場合は、Windows PowerShell プロファイルを編集します。
Windows PowerShell プロファイルについての詳しい説明は、こちら。
Windows PowerShell プロファイルのパスを表示
$profile
パスを表示するだけで、すでにプロファイルが存在するわけではありません。
プロファイルが存在するか確認
test-path $profile
プロファイルが存在する場合は True、存在しない場合は False
プロファイル ファイルを作成
new-item -path $profile -itemtype file -force
プロファイルをメモ帳で開く
notepad $profile
プロファイルを開いたら、以下の内容を追記して、Windows PowerShellを再起動します。
Anaconda(Miniconda)をインストールしている場合
AnacondaやMinicondaをインストールしている場合は、プロファイルパスのフォルダにprofile.ps1
という名前のファイルが作成されている場合があります。その時は、profile.ps1に
$OutputEncoding = [System.Text.Encoding]::GetEncoding('utf-8')
を追記して、Windows PowerShellを再起動します。
問題は、UTF8(BOM付き)
エンコードってすごくややこしいのですが、ここで変更したUTF8は、すべてUTF8(BOM付き)です。
BOMなしのUTF8形式のファイルをWindows PowerShellで表示しようとすると、文字化けします。Windows PowerShellでBOMなしのUTF8を表示する設定をしてもいいのですが、設定がすごく面倒なので、PowerShell Coreをインストールします。
PowerShell Coreは、デフォルトのエンコードがBOMなしのUTF8なので、BOM付きとBOMなしのUTF8形式のファイルが文字化けしません。
PowerShell Core のインストール
PowerShell Coreのインストール方法はいくつかあるのですが、簡単なのはMicrosoftStoreからのインストールです。
MicrosoftStoreで、PowerShellを検索しインストールするだけです。
その他の詳しいインストール方法は、こちら。
記事を取得できませんでした。記事IDをご確認ください。