プログラム

PowerShellのImport-CsvコマンドオプションのEncodingが静かに変更されていた

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で読み込んだら文字化けした
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は以下のサイトが参考にしてください

MSサイト
Encoding クラス (System.Text) | Microsoft Learn
Encoding クラス (System.Text) | Microsoft Learn

文字エンコーディングを表します。

続きを読む

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

-プログラム
-