バッチファイルを実行した際に以下のような文字化けが起きるときの対処方法についてまとめてみました。
文字化けの原因
文字化けは「バッチファイルの文字コード」と「コマンドプロンプトの文字コード」が合っていないことが原因で起こります。
バッチファイルの文字コードはメモ帳などで開いた際に右下に表示されるコードで確認できます。
今回実行していたバッチファイルはUTF-8だったことが分かります。
コマンドプロンプトの文字コードはコマンドプロンプトで [chcp] と入力しても分かりますが、実際にバッチファイル内にchcpと入力して出力を確認するのが早いです。
実行すると932、つまりShift_JISであることが分かります。
よって、バッチファイルはUTF-8ですが、実行されるコマンドプロンプトではShift_JISを利用しているので文字コードが一致せず文字化けが起きていたというわけでした。
2つの対処方法
対処方法は2つあります。
対処方法1:バッチファイル内で文字コードを指定する
バッチファイル内に文字コードを指定するコマンドを入れることで解決する方法です。
この方法が一番簡単かつおすすめです。
今回の例ですとUTF-8の文字コードで実行されるように [chcp] コマンドを利用して指定します。
chcp 65001
echo こんにちは
pause
UTF-8の文字コードは 65001 なのでその値を指定します。
すると、以下のように文字化けせずに表示させることができます。
対処方法2:バッチファイルを Shift_JIS に合わせる
こちらはバッチファイル自体をShift_JIS(ANSI)に合わせる方法です。
バッチファイルをメモ帳などで開き、「名前を付けて保存」を実行して保存する際にANSIを選択します。
これで、改めてバッチファイルを実行してみると以下のように文字化けせずに実行が可能となります。