LoginSignup
0
0

More than 1 year has passed since last update.

PowerShellでフォルダ内のCSVファイルを連結するときの文字化け対応

Posted at

確定申告のCSV取り込みで月別のcsvを連結しようと思ったら文字化けしたので解決したときのメモ

状況とやりたかったこと:

フォルダの中に 202101.csv, 202102.csv ... 202112.csv のように1年分のcsvファイルが入っている状態

これらのcsvを連結して一つのファイルにしたい。

試したこと:

いろいろ調べると、やはり文字コードの問題があるようでPowerShellのデフォルトの文字コードがUTF-8になっていることが原因らしい。 PowerShellの文字コード設定を変えればいけるとかの記事を参考にしたのだが、うまくいかず。それならバイナリで出力して、バイナリで受け取ってくれればと

Get-Content *.csv -Encoding Byte | Set-Content all.csv -Encoding Byte
のようにしてみたら以下のようなエラーが、

Get-Content: Cannot process argument transformation on parameter 'Encoding'. 'Byte' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')

Byte という名前は Encoding パラメータに対して有効ではありませんよということのようです。

結果:

じゃあフツーに SJISで設定したらと試すとうまくいきました。
Get-Content *.csv -Encoding Shift-JIS | Set-Content all.csv -Encoding Shift-JIS

銀行とか、クレジットカード会社が提供している明細CSVダウンロードのサービスではすぐにExcelで開けるようにShift-JIS のEncoding でダウンロードされるようです。
つまりフツーにExcel使っている場合はcsvファイルから直接Excelを開くようにする場合は、CSVファイルはShift-JISである必要がある。少なくとも2022年2月時点では

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0