バッチファイルを実行したときに、以下のように文字化けして表示されることがあります。
文字化けの原因について説明します。
なぜ文字化けするのか
文字化けする原因は、バッチファイルとコマンドプロンプトの文字コードが一致していないことが原因です。
以下の2つの文字コードが一致していない場合に、文字化けします。
- バッチファイル
- コマンドプロンプト
バッチファイルの文字コードを確認する
メモ帳でバッチファイルを開きます。
メモ帳の右下で、バッチファイルの文字コードを確認できます。
メモ帳の右下に何もないときは、ステータスバーが表示されていないからです。
ステータスバーを表示するには、『表示』→『ステータスバー』をクリックします。
コマンドプロンプトの文字コードを確認する
コマンドプロンプトで、文字コードを確認するには『chcp』コマンドを使います。
コマンドプロンプトを開いて、『chcp』と入力して『Enter』を押せば、現在の文字コードが表示されます。
実行した結果『現在のコード ページ:932』と表示されました。
文字コードが直接表示されるわけではなく、文字コードに対応する識別子が表示されます。
『932』は、『Shift-JIS』です。
ちなみに『UTF-8』の識別子は、『65001』になります。
- 932:Shift-JIS
- 65001:UTF-8
それ以外は、Micorsoftのページで確認することができます。
文字コードを合わせる
文字コードが、バッチファイルは『UTF-8』、コマンドプロンプトは『Shift-JIS』なので文字化けしてたわけです。
文字化けを解決するために、バッチファイルの文字コードを『Shift-JIS』に変更します。
バッチファイルをメモ帳で開き、『名前をつけて保存』で文字コードを『ANSI』で保存します。
メモ帳では、文字コードに『Shift-JIS』がないですが、『ANSI』と『Shift-JIS』はほぼ同じなので問題ありません。
これで、バッチファイルもコマンドプロンプトも『Shift-JIS』になりました。
バッチファイルを実行すれば、問題なく表示されるはずです。
コマンドプロンプトの文字コードを変更する
参考に、コマンドプロンプトの文字コードを変更する方法についても説明します。
コマンドプロンプトの文字コードを変更するときも『chcp』コマンドを使います。
『chcp 65001』のように『chcp+スペース+識別子』と入力してください。
コマンドプロンプトの文字コードは、コマンドプロンプトを閉じれば元に戻るので注意が必要です。
まとめ
バッチファイルで文字化けするときは、バッチファイルとコマンドプロンプトの文字コードが原因です。
それぞれの文字コードを確認してみてください。
コマンドプロンプトは、Shift-JISであることが多いので、バッチファイルがUTF-8になっていることが原因であることが多いです。
バッチファイルの文字コードをShift-JISで保存しなおしてみてください。
メモ帳の場合は『ANSI』にすれば大丈夫です。
バッチファイルを使えば、いろいろな作業を効率化することができます。どんどん効率化していきましょう。