バッチファイル実行時に文字化けしたときの対処方法

bat bat

バッチファイルを実行した際に以下のような文字化けが起きるときの対処方法についてまとめてみました。

バッチファイル起きた文字化け
広告

文字化けの原因

文字化けは「バッチファイルの文字コード」と「コマンドプロンプトの文字コード」が合っていないことが原因で起こります。

バッチファイルの文字コードはメモ帳などで開いた際に右下に表示されるコードで確認できます

バッチファイルの文字コードを確認

今回実行していたバッチファイルは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を選択します。

バッチファイル自体をShift_JIS(ANSI)に合わせる方法

これで、改めてバッチファイルを実行してみると以下のように文字化けせずに実行が可能となります。

バッチファイル自体をShift_JISに合わせる対処実施後の実行結果

コメント

タイトルとURLをコピーしました