- Published on
Powershellスクリプトを実行すると文字化けする
- Authors
- Name
- Shou Arisaka / 有坂翔
powershellをいじっていたら、コンソールで直接echoで日本語するぶんには文字化けしないが、スクリプトに日本語が含まれている状態でそのスクリプトを実行すると文字化けして出力させるということがわかった。 Powershellスクリプトを実行すると文字化けしてしまう場合の対処方法について紹介します。
# test.ps1
echo あ
PS C:\pg\selenium> echo あ
あ
PS C:\pg\selenium> . test.ps1
縺・
PS C:\pg\selenium> . test.ps1
あ
対処: bomをつける
nkf --overwrite --oc=UTF-8-BOM test.ps1
上記のような文字化けが起きる場合は、nkfを使ってbomをつけると解決します。 nkfは、文字コードを変換するコマンドです。 nkfを使うときは、nkfのオプションに--oc=UTF-8-BOM
をつけるとbomをつけることができます。
文字コードは、utf-8とutf-8-bomでは違うので注意してください。 utf-8-bomは、utf-8にbomをつけたものです。 bomは、文字コードを判別するためのものです。 bomをつけると、文字コードを判別することができるので、文字化けを防ぐことができます。