Windowsターミナルやコマンドプロンプトを使っているとき、文字化けで困ったことはありませんか?とくに日本語がふくまれる出力やログファイルをあつかうとき、文字コード(エンコーディング)の設定がとても大切です。
この記事では、Windowsターミナルでの文字コードの確認方法や変更方法、よくあるトラブルの対処法まで、わかりやすく解説します。
この記事を読むとわかること
- 文字化けがおこる理由
- 文字コードの確認・変更方法
- 文字化けを防ぐ設定のしかた
- よくあるトラブルと解決方法
Windowsターミナルの文字コードってなに?

文字コードとは
文字コードとは、コンピューターが文字を理解するための「翻訳ルール」のようなものです。
同じ「あ」という文字でも、翻訳ルールがちがうと正しく表示されません。
Windowsでは、おもに2つの文字コードが使われています:
シフトJIS(CP932)
- 日本語環境でよく使われる
- コードページ番号:932
- 古いアプリケーションでよく見かける
UTF-8(CP65001)
- 世界中の文字に対応している
- コードページ番号:65001
- 新しいアプリケーションで推奨されている
文字化けがおこる理由
文字化けは、送る側と受け取る側で使っている翻訳ルールがちがうときにおこります。
たとえば:
- アプリケーションがシフトJISで文字を出力
- ターミナルがUTF-8で表示しようとする
- 翻訳ルールがちがうので文字化け発生
この問題を解決するには、両方で同じ文字コードを使うことが重要です。
現在の文字コードを確認・変更する方法
文字コードの確認方法
説明:現在使われている文字コードを調べる
コマンド例:
chcp
実行結果の例:
現在のコード ページ: 932
この場合、シフトJIS(932)が使われていることがわかります。
文字コードの変更方法
説明:文字コードをUTF-8に変更する
コマンド例:
chcp 65001
実行結果の例:
Active code page: 65001
これでUTF-8に変更されました。文字化けを防ぎたいときには、この設定がおすすめです。
注意点
一時的な変更:chcp
コマンドで変更した設定は、ターミナルを閉じると元に戻ります。
恒久的な変更:毎回同じ設定にしたい場合は、プロファイル設定や環境変数の調整が必要です。
次の章では、恒久的な設定方法について説明します。
WindowsターミナルでUTF-8をデフォルトにする

方法1:プロファイルの設定変更
説明:Windowsターミナルの設定ファイルを編集して、起動時に自動でUTF-8に変更する
手順:
- Windowsターミナルを開く
- 設定メニューを選択(Ctrl + , でも開けます)
- 対象のプロファイル(例:PowerShell)を選択
- 「コマンドライン」の項目を探す
- 以下のように変更する
設定例:
{
"commandline": "powershell.exe -NoLogo -ExecutionPolicy RemoteSigned -Command \"chcp 65001; cls\""
}
この設定の意味:
chcp 65001
:UTF-8に変更cls
:画面をクリアして見やすくする
方法2:スタートアップスクリプトを使用
説明:PowerShellの起動時に自動実行されるスクリプトに設定を追加する
手順:
- PowerShellプロファイルの場所を確認
$PROFILE
- プロファイルファイルを作成・編集
notepad $PROFILE
- 以下の内容を追加
# UTF-8に設定
chcp 65001 | Out-Null
メリット:
- 毎回自動で設定される
- 他のカスタマイズと一緒に管理できる
方法3:環境変数での制御
説明:システム全体で文字コードの動作を変更する
手順:
- 「システムの詳細設定」を開く
- 「環境変数」ボタンをクリック
- 「新規」で以下の変数を追加
環境変数の例:
変数名: PYTHONIOENCODING
値: utf-8
注意点:この方法はアプリケーション全体に影響するため、慎重に設定してください。
どの方法を選ぶかは、使用目的によってきまります。個人的な使用なら方法1か2、チーム全体で統一したい場合は方法3がおすすめです。
文字化けの原因とその対処法

よくある原因と解決方法
原因1:出力側と表示側のコードページが一致していない
症状例:
- 日本語が「???」や「豆腐」のような記号で表示される
- アプリケーションの出力が読めない
対処法:
# まず現在の設定を確認
chcp
# UTF-8に変更
chcp 65001
原因2:フォントが日本語に対応していない
症状例:
- 英数字は正常だが、日本語だけ表示されない
- 日本語の部分が空白になる
対処法:
- Windowsターミナルの設定を開く
- 「外観」タブを選択
- フォントを以下のいずれかに変更:
- Cascadia Code PL
- MS ゴシック
- Yu Gothic UI
原因3:出力先ファイルと開くエディタの文字コードが異なる
症状例:
- ファイルに出力した内容をメモ帳で開くと文字化けする
- 同じファイルでもエディタによって表示が変わる
対処法:
# ファイル出力時にUTF-8を指定
echo "テスト" > test.txt
chcp 65001
echo "テスト" > test_utf8.txt
ファイルを開くときも、UTF-8で開くように指定してください。
原因4:古いバッチファイルやスクリプトを実行している
症状例:
- 古いバッチファイルの日本語コメントが化ける
- 実行結果のメッセージが読めない
対処法:
# スクリプト実行前にコードページを確認・調整
chcp 932
your_script.bat
chcp 65001
トラブルシューティングの手順
ステップ1:現状確認
chcp
echo "テスト文字列"
ステップ2:UTF-8に変更して再確認
chcp 65001
echo "テスト文字列"
ステップ3:フォント設定確認
- Windowsターミナルの設定でフォントを確認
- 日本語対応フォントに変更
ステップ4:アプリケーション側の設定確認
- 使用しているアプリケーションの文字コード設定
- 出力ファイルの形式確認
この手順で、ほとんどの文字化け問題は解決できます。
実際の使用例とベストプラクティス

日常的な作業での設定例
Python スクリプトを実行するとき:
chcp 65001
python your_script.py
ログファイルを確認するとき:
chcp 65001
type logfile.txt
Git の出力を確認するとき:
chcp 65001
git log --oneline
おすすめの設定
基本方針:
- 新しい作業はUTF-8(65001)で統一
- 古いシステムとの互換性が必要な場合のみシフトJIS(932)
プロファイル設定例:
{
"name": "PowerShell(UTF-8自動設定)",
"commandline": "powershell.exe -NoLogo -Command \"chcp 65001; cls\"",
"fontFace": "Cascadia Code PL"
}
この設定により、起動時に自動でUTF-8に切り替わり、日本語対応フォントも設定されます。
まとめ:文字コードを理解してストレスフリーなターミナル環境を作ろう
重要なポイント
文字コードの基本:
chcp
コマンドで現在の設定を確認できる- UTF-8(65001)が現在の推奨設定
- 変更は一時的なので、恒久設定が重要
文字化け対策:
- 送信側と受信側で同じ文字コードを使う
- 日本語対応フォントを使用する
- ファイル出力時は文字コードを意識する
実践的な設定:
- プロファイルに自動設定を組み込む
- よく使うコマンドはスクリプト化する
コメント