2024年1月19日金曜日

(PC)Windows 11において、2種類のPowerShell併用における文字コード悩み

私は、Windows 11において、Windows専用のPowerShell(Windows PowerShell 5.XX)と、マルチプラットホームのPowerShell 7.xxの2種類を併用しています。

大好きだったPS3 Linux終了のショックがまだ尾を引いていて、Linuxはプライベートではやっておりません...(やりたいけど、PS3破棄ショックが巨大過ぎた)

それはそれとして、Windows 11の中でも、この二種類のPowerShellの併用は、そこそこにハードルがあります。

機能的な問題はあるとして、その前段階でパッと出てくるのが何と言っても日本語「文字コードの壁」であります。


結論はUTF8 with BOMを使う!!

文字コードですが、Windows PowerShellは、推奨が昔ながらのShift JISになっているのですが、結論を言うと、文字コードはUTF8 with BOMというコードに変えて運用しております。

以下スクリーンショットですが、上から「Shift_JIS」「UTF8 with BOM」「UTF8」となっておりますが、Windows専用PowerShellだと、UTF8がドカーンと文字化けしているのが分かると思います。

なんでやねんという感じですが、このままだと、見た目だけでなく、スクリプト実行時にエラーが出たりするので日本語使えない事になってしまうという...


↑えー今どき、Windows専用と言えども、UTF8でいいんでないの、と思うと、そうではなかったです。

UTF8文字化けするやんののののの。

UTF8 with BOMでないと、Windows専用版で文字化けしてしまう。


↑マルチプラットホーム版のPowerShellなら、UTF8 with BOM大丈夫なので、両方大丈夫!!

これでいってみようと。