※ この記事にはアフィリエイトリンクが含まれます
バッチファイルを使ってちょっとした自動化をしようとしたとき、「日本語が文字化けして読めない・・・」と困った経験はありませんか?
特に、echo
で日本語を出力したり、ファイルの読み書きを行ったときに「???」や「�」のような表示になることがあります。
この記事では、バッチファイルで文字化けが起きる原因と、その確実な対処法をわかりやすく解説します。初心者の方でも安心して読めるよう、基礎から順を追って説明していきます。
よくある文字化けの例
まずは、どのようなケースで文字化けが起きるのかを見てみましょう。
どれも、原因は「文字コードの不一致」です。
原因1:文字コードの違い
Windowsの「コマンドプロンプト(cmd.exe)」は、もともとShift_JIS(CP932)という文字コードを使っています。
一方、最近のエディタ(例:VSCodeやWindowsメモ帳)は、デフォルトでUTF-8でファイルを保存します。
この違いが原因で、バッチファイル内の日本語が文字化けしてしまうのです。
解決策:バッチファイルを正しい文字コードで保存する
エクスプローラーから「名前をつけて保存」する場合は、保存ボタンの左側にある「エンコード」から文字コードを選択できます。

VSCodeでの保存方法
1. 右下の「UTF-8」表示をクリック

2. 「エンコードを再選択」(またはReopen With Encording)→「Shift_JIS」や「UTF-8(BOMなし)」を選択

選択後、右下の文字コードが「UTF-8」から選択した文字コードになっていることを確認
3. 再保存する
原因2:コマンドプロンプトの文字コードが合っていない
バッチファイルでUTF-8を使いたい場合、chcp 65001 を明示的に書く必要があります。
解決策:バッチファイルの冒頭に chcp 65001を記述
@echo off
chcp 65001 > nul
echo 日本語を出力します
これにより、コマンドプロンプトがUTF-8で動作するようになり、文字化けを防ぐことができます。
chcp 65001
の設定は実行中のプロンプトにだけ一時的に適用されます。PC全体の設定は変わりません。
原因3:BOM付きUTF-8で保存している
VSCodeやWindowsの一部エディタでは、UTF-8で保存したファイルにBOM(バイトオーダーマーク)が付いてしまうことがあります。
このBOMが原因で、ファイルの先頭に変な文字が表示されたり、うまく動作しなくなることがあります。
解決策:UTF-8(BOMなし)で保存する
BOM付きファイルは、type
コマンドで表示させると先頭に「」のような文字が出てくることがあります。
まとめ
バッチファイルの文字化けは、ほとんどの場合文字コードの不一致が原因です。
バッチファイルは今でも現場でよく使われる自動化手段です。正しく扱えるようになれば、ちょっとした作業を大幅に効率化できますよ。
業務効率化・自動化を武器に転職も視野に入れるなら…
業務効率化スキルを身につけることで、社内SEやIT職にキャリアアップする道も開けます。
転職を考えている方は、IT職に特化した転職エージェントも検討してみてください。
社内SEに興味がある、転職を考えてる方は「社内SE転職ナビ」がおすすめです。
保有求人数は10,000件以上、サイト公開求人数は4,000件以上あるので、会員登録しておくのがおすすめです。
ITに特化した転職サイトまとめ記事はこちらにあるのでぜひご覧ください。

コメント