日別アーカイブ: 2024年10月15日

Powershellの文字コード指定を登録済みコードページで行う

以前Powershell7以降で文字コード指定をする方法をエントリにしました。

Powershell(7.3.6)でShift-JISのCSVファイルを読む

[heboDJ.net]

この時は文字コードの名称で指定を行う方法をまとめましたが、先日関連するドキュメントに目を通していると、Powershell6.2以降では登録済みコードページでも文字コードの指定ができるとのことでした。

about_Character_Encoding

Encoding.CodePage プロパティ

[Microsoft Learn]

これによれば、以下のような指定方法でも文字コードをShift-JISに設定することができるようです。

[Powershell]
#$csvFileは読み込むCSVファイルのファイル名を含むフルパス
Import-Csv -Path $csvFile.FullName -Encoding "shift_jis"
Import-Csv -Path $csvFile.FullName -Encoding 932

OSのデフォルト値とするよりも、こちらの設定方法の方が明示的で後から見たときも分かりやすいそうに感じます。

以前は違ったように記憶しているのですが、現在Powershellで特に文字コードを指定しないとUTF-8が使用されるので、Shift-JISを指定したい場合はこのように明示的に指定しないと文字化けしてしまうことがあります。