chcp - 文字コードを切り替える
chcpコマンドは、コマンドプロンプトが使うコードページ(文字コードの種類)を確認・変更するコマンドです。
出力した文字が「縺ゅ>縺…」のように化けるときは、コマンドプロンプトの文字コードと、読み書きしているデータの文字コードが食い違っていることがほとんどです。chcpを使うと、その食い違いを解消できます。
chcpコマンドの基本構文
chcp [<コードページ番号>]
番号を省略すると現在のコードページを表示し、番号を指定するとそのコードページに切り替えます。
現在のコードページを確認する
引数なしで実行します。
chcp
日本語版 Windows の既定は932(Shift_JIS 系)です。
コードページを変更する
切り替えたい番号を指定します。UTF-8 にするには65001です。
chcp 65001

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
元に戻すときはchcp 932を実行します。
主なコードページ
| 番号 | 名称 | 用途 |
|---|---|---|
932 | Shift_JIS(Windows 日本語) | 日本語版 Windows の既定 |
65001 | UTF-8 | UTF-8 のファイルや Web 系ツールの出力 |
437 | 米国(OEM) | 英語版 Windows の既定 |
1252 | 西ヨーロッパ(Windows) | 欧州言語のテキスト |
chcpで変更した内容は、そのコマンドプロンプトのウィンドウ(セッション)にのみ有効です。ウィンドウを閉じる、または別のウィンドウを開くと、既定のコードページに戻ります。
文字化けを直す
UTF-8 のファイルを表示したい
UTF-8 で保存されたテキストをtypeで表示すると、コードページ 932 のままでは文字化けします。chcp 65001で切り替えてから表示します。
chcp 65001
type utf8.txt
出力が化けるとき
外部ツールの出力が化ける場合は、そのツールが出力する文字コードにコードページを合わせます。ツールの出力が UTF-8 なら65001、Shift_JIS なら932です。
バッチファイルで一時的に切り替えて元に戻す
バッチファイルの中で UTF-8 を使い、終わったら元に戻すには、最初に現在の番号を控えておきます。
@echo off
for /f "tokens=2 delims=:" %%a in ('chcp') do set ORIG_CP=%%a
chcp 65001 >nul
type "%~dp0utf8.txt"
chcp %ORIG_CP% >nul
chcpの出力は表示言語によって文言が変わりますが、コロン(:)の後ろに番号が表示される点は共通のため、delims=:で取り出せます。>nulを付けると、「現在のコード ページ」というメッセージを非表示にできます。
日本語を含むバッチファイル(.cmd)自体を UTF-8 で保存して実行すると、環境によってラベルやgotoが正しく解釈されないことがあります。配布するバッチファイルは、Shift_JIS で保存するのが安全です。詳しくは文字化けの記事を参照してください。
保存形式の選び方や、システム全体を UTF-8 にする設定など、文字化け対策の全体像は下の関連記事にまとめています。