PowerShell 7のImport-Csvを使用した際に読み込んだデータが文字化けしており、困って調べた際のメモです
読み込んだCSVデータが文字化け
PowerShell 7でもいつものように以下のコマンドを使用してCSVファイルを読み込みそのデータを使おうと思ったら、なぜかうまく動かずデバッグでデータを見ると文字化けしていました
Import-Csv -LiteralPath $targetFile -Encoding Default
原因および対応方法
原因
今回の件を調べてみると、なんとPowerShell 6から今回の事象は起きていたようです
以下のサイトにもあるように【Default】の扱いがshift_jisからUTF8になっていることが原因でした
対応方法
サイトにも記載されていますが、以下のようにするとshift_jisが読み込めました
# 932はshift_jisを示す値
Import-Csv -LiteralPath $targetFile -Encoding ([System.Text.Encoding]::GetEncoding(932))
-
PowerShell 6で、Shift_JISのCSVをImport-Csvで読み込んだら文字化けした
Follow @venividivici830 PowerShell 4で作ったShift_JIS(シフトJIS) ...
続きを読む
この方法はImport-Csv以外にもPowerShell 6以降ではGet-Content、Out-File、Export-Csvでも同様にする必要があるようなので注意
上記で出てきた文字コードのIDは以下のサイトが参考にしてください
-
Encoding クラス (System.Text) | Microsoft Learn
文字エンコーディングを表します。
続きを読む