Claude Codeで文字化けする原因と解決法【再発しない設定も紹介】
Claude Codeの出力が文字化けしてる…
何度試しても文字化けする…どうすれば直るの?
Claude Codeを使うなかで、日本語が意味不明な文字列や記号に文字化けし、困っている人も多いですよね。
また、直し方がわからず作業よりも文字化けの対応に直にゃ手間を取られている人もいるはず。
文字化けの原因は環境によって異なるため、間違った手順で対処すると再発しやすいです。
そこでこの記事では原因も交え、Claude Codeで文字化けする際の解決法を解説します。再発防止のための設定方法も紹介するので、ぜひ参考にしてください。
Claude Codeの特徴をおさらいしておきたい人は、次の記事を参考にしてください。

- 文字化けの主因は文字コード(UTF-8とShift_JIS)の不一致
- PowerShellやVSCodeの文字コード設定変更で即解消できる
- CLAUDE.mdに日本語指示を書くと再発をほぼ防げる
『ClaudeCodeに興味はあるけど、どうやって使えばいいんだろう…』
そんな方へ、
- ClaudeCodeに作業や仕事を任せる方法
- ClaudeCodeを使いこなすたった1つのコツ
- 業務効率化や収入獲得に活かすClaudeCodeの実演
を、無料のオンラインセミナーで凝縮してお伝えします!
パソコンはもちろん、スマホから気軽に参加OK。この時間が、あなたを変える大きなきっかけになりますよ。
文字化けは「文字コードの不一致」が最大の原因

Claude Codeで文字化けが起きる最大の原因は、ファイルやターミナルが使う文字コードのズレです。
文字コードとは、文字と数値を対応させるルールのことです。Claude Code自体はUTF-8というルールを前提に動作しますが、Windowsの多くの環境ではShift_JISが既定値として設定されています。異なる文字コードの組み合わせで出力が行われると、文字の対応表がずれて日本語が正しく表示されません。
たとえば、PowerShellのデフォルト文字コードはShift_JIS(コードページ932)です。Claude CodeがUTF-8で日本語テキストを出力しても、PowerShell側がShift_JISで解釈しようとするため、「縺ゅ≠縺・」のような崩れた文字として表示されます。
macOSやLinuxはシステム全体がUTF-8で統一されているため、文字化けが起きにくい構造です。一方、Windowsは歴史的な経緯でShift_JISが根強く残り、文字化けが発生しやすい環境といえます。
文字化けを根本から直すには、「出力する側」と「受け取る側」の文字コードを揃える必要があります。
【ケース別】Claude Codeで文字化けする理由

ここからは下記のケース別に、文字化けの原因を解説します。
PowerShellがデフォルト設定のまま
Windows環境で最も多い原因は、PowerShellの文字コードがShift_JIS(コードページ932)のままになっているケースです。
PowerShellはインストール直後、システムのロケールに従って文字コードが決まります。日本語Windowsでは自動的にShift_JISが選ばれるため、UTF-8で出力するClaude Codeとの間に不一致が生まれます。
たとえば「こんにちは」と出力すると「繧薙s縺ォ縺。縺ッ」のように文字化けして表示されます。この状態のまま使い続けると、生成コードのコメントや変数名、エラーメッセージがすべて崩れる可能性が高いです。
フォントが日本語非対応
ターミナルの文字コードが正しくUTF-8に設定されていても、フォントに日本語のグリフ(字形データ)が含まれていないと文字化けに似た表示崩れが起きます。
代表的な例は「Cascadia Code」「Fira Code」などの欧文専用プログラミングフォントです。英数字と記号のグリフしか持っていないため、日本語の文字を表示できず「□」(豆腐)や空白として表示されます。
Windowsの場合は「BIZ UDゴシック」や「Nerd Fonts」の日本語対応版(例:HackGen NF)、macOSでは「HackGen」や「Nerd Fonts」の日本語対応版に変更すると解消されます。文字コードが正しいのに表示がおかしいと感じたら、フォントを確認しましょう。
特定のファイルだけ文字化けする
特定のファイルだけ文字化けする場合は、該当のファイル自体がShift_JISやEUC-JPで保存されていることが原因です。
古いシステムや外部から受け取ったファイルは、Shift_JISで書かれているケースもあります。エディタやターミナルがUTF-8前提で読み込もうとすると、文字コードが一致せず崩れます。
VSCode では、右下のステータスバーに現在の文字コードが表示されます。「Shift_JIS」と表示されているファイルは、「エンコード付きで再度開く」→「UTF-8」を選択し、「UTF-8で保存」すれば文字化けを解消可能です。
ログファイルを開くと文字化けしている
アプリのログファイルを開いたときに文字化けするのも、よくあるパターンです。ログを書き出すプロセスの文字コードと、ファイルを開くツールの文字コードが一致していないことが原因です。
Javaアプリなどは、環境変数の設定によってShift_JISでログを書き出すことがあります。Shift_JISファイルをUTF-8前提のターミナルやVSCodeで開くと崩れます。
ログファイルが文字化けした場合は「開く側の文字コードをShift_JISに合わせて一時的に閲覧する」か、「書き出し側をUTF-8に統一する」の2択で対処可能です。長期的には書き出し側をUTF-8に統一したほうが管理しやすいです。
チーム内で自分だけ文字化けする
同じリポジトリを使っているのに自分のPCだけ文字化けする場合は、ローカル環境の文字コード設定がチームの標準と異なることが原因です。
具体的には、次の差異が起きやすいです。
- ターミナルの文字コード設定がShift_JIS
- Gitの設定でShift_JISへの変換が有効になっている
- EditorConfigやVSCodeの設定ファイルがローカルで変更されている
Gitの`core.autocrlf`設定や、`.gitattributes`ファイルの内容が自分の環境だけ異なるケースは見落としがちです。チームメンバーの設定と比較し、一致させることで解消できます。
【環境別】Claude Codeの文字化け解決法

ここからは下記の環境別に、Claude Codeの文字化け解決法を解説します。
Windows(PowerShell / CMD)の場合
Windowsは文字化けが最も起きやすい環境です。PowerShellとCMDのそれぞれに合わせた設定変更が必要になります。
ここからは、PowerShellとCMDの設定手順を解説します。
PowerShellのプロファイルに設定を追加する
PowerShellの文字化けは、プロファイルに文字コード設定を追記することで解消できます。
プロファイルに書いておけば、PowerShellを起動するたびに自動で設定が適用されます。毎回手動でコマンドを打つ方法もありますが、ウィンドウを閉じるたびに設定がリセットされるため、長期的にはプロファイルへの設定がおすすめです。
PowerShellのプロファイルへの設定手順は、次のとおりです。
1.PowerShellを開き、notepad $PROFILE を実行する
2.ファイルが存在しない場合は作成を確認するダイアログが出るので「はい」を選ぶ
3.開いたメモ帳に下記を追記して保存する
```
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$env:PYTHONUTF8 = "1"
```
4.PowerShellを再起動して動作確認する
設定後に `[Console]::OutputEncoding` を実行し、`UTF-8` と表示されれば成功です。`BodyName : utf-8` と表示されるだけの場合も、UTF-8に切り替わっています。
CMDで文字コードを変更する
コマンドプロンプト(CMD)を使う場合は、`chcp 65001` コマンドでコードページをUTF-8に切り替えることで文字化けを解消できます。
ただし、コマンドはウィンドウを閉じるとリセットされます。恒久対応するには、レジストリを編集してCMDの起動時に自動実行させなければいけません。
一時的な対処(CMDを開いたあとに毎回実行)は、次のとおりです。
```
chcp 65001
```
起動時に自動で適用する場合は、次のレジストリキーに `autorun` の値を追加します。
```
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"autorun"="chcp 65001"
```
なお、`chcp 65001`に変更するとCMD上の一部の旧ツールで表示が崩れることがあります。Claude Code専用で使うターミナルウィンドウだけに適用するほうが安全です。
WindowsでClaude Codeを使う方法を詳しく知りたい人は、次の記事を参考にしてください。

macOS/Linuxターミナルの場合
macOSとLinuxは、システム全体がUTF-8で動作しているため、Windowsほど文字化けは起きません。ただし、ロケール設定が正しく設定されていないと文字化けが発生することがあります。
まず現在のロケール設定を確認します。
```
locale
```
`LANG=ja_JP.UTF-8` と表示されていれば問題ありません。`LANG=C` や `LANG=POSIX` の場合は日本語ロケールが設定されていないため、次のコマンドで設定します。
bash使用時(~/.bashrc):
```
echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
source ~/.bashrc
```
zsh使用時(~/.zshrc):
```
echo 'export LANG=ja_JP.UTF-8' >> ~/.zshrc
source ~/.zshrc
```
macOSのデフォルトシェルはzshなので、通常は `~/.zshrc` を編集します。設定後にターミナルを再起動し、`locale` コマンドで `ja_JP.UTF-8` が表示されれば完了です。
MacでClaude Codeを使う方法を詳しく知りたい人は、次の記事を参考にしてください。

VSCode統合ターミナルの場合
VSCodeの統合ターミナルで文字化けする場合、2か所の設定を確認する必要があります。ターミナルの文字コードと、エディタのデフォルトエンコーディングの両方です。
まずVSCodeの設定ファイル(settings.json)に次の項目を追加します。
```json
{
"files.encoding": "utf8",
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.env.windows": {
"PYTHONUTF8": "1"
}
}
```
Windows環境ではさらに、統合ターミナルで起動するPowerShellのプロファイル設定(前述の `[Console]::OutputEncoding` の設定)も必要です。VSCodeの設定だけでは不十分な場合があります。
フォントが原因の場合は、settings.jsonに次の設定を追加して日本語対応フォントに切り替えます。
```json
{
"terminal.integrated.fontFamily": "HackGen Console NF, Consolas, monospace"
}
```
HackGen Console NFは日本語と英数字の両方を持つプログラミングフォントで、Claude Codeとの相性もよい選択肢です。
VS CodeでのClaude Code活用法を詳しく知りたい人は、次の記事を参考にしてください。

設定変更後も文字化けが直らない際の切り分け方

設定を変えたつもりなのに文字化けが直らない場合は、どの層で問題が残っているかを順番に切り分けることが解決への近道です。
Step 1:文字コードが正しく切り替わっているか確認する
PowerShellの場合:
```
[Console]::OutputEncoding
```
`BodyName : utf-8` が表示されればOKです。そうでない場合は設定が反映されていません。
Step 2:Claude Codeの出力先を変えてみる
ターミナルで文字化けしていても、ファイルに書き出すと正常に表示されるケースがあります。次のコマンドでファイルに出力し、VSCodeで開いて確認します。
```
claude "こんにちは" > output.txt
```
ファイルは正常なのにターミナルだけ崩れる場合は、フォントまたはターミナルの表示設定が原因です。
Step 3:Pythonで文字コードを確認する
Claude Codeは、デフォルトで標準出力の文字コードを参照するケースがあります。次のコマンドで現在の文字コードを調べます。
```
python -c "import sys; print(sys.stdout.encoding)"
```
`utf-8` 以外が表示された場合は `PYTHONUTF8=1` の環境変数設定を見直します。
Step 4:ターミナルエミュレータ自体の設定を確認する
Windows Terminalを使っている場合、アプリ側の設定でUTF-8が有効になっているか確認します。Windows Terminalの設定(settings.json)で次の項目を確認します。
```json
{
"profiles": {
"defaults": {
"startingDirectory": "%USERPROFILE%",
"colorScheme": "One Half Dark"
}
}
}
```
なおWindows TerminalはバージョンUnicode/UTF-8の表示に対応していますが、PowerShellのコードページ設定(Shift_JIS)はシェル側の問題であり、Windows Terminalのバージョンアップだけでは解消されません。
Claude Codeの文字化けを再発防止するには

設定を一度変えても、環境の更新やPCの再セットアップで元に戻ることがあります。
ここからは、Claude Codeの文字化けの再発防止策を解説します。
CLAUDE.mdで日本語出力を指示する
Claude Codeには、プロジェクトのルートディレクトリに `CLAUDE.md` ファイルを置くことでAIへの指示を永続的に設定できる機能があります。
日本語出力を確実にするには、次の内容を記載します。
“`
# 言語設定
すべての出力を日本語で行うこと
コメント、変数名の説明、エラーメッセージもすべて日本語で記述すること
文字コードはUTF-8を使用すること
# 出力ルール
Markdown形式で出力する際も日本語を使用すること
ファイルを新規作成する際はUTF-8 BOMなしで保存すること
“`
この設定をプロジェクトに含めておけば、チームメンバーが同じリポジトリをクローンした際にも同じ指示が適用されます。個人設定だけに頼らず、プロジェクトレベルで日本語設定を固定できる点が大きなメリットです。
また、ホームディレクトリの .claude フォルダ内(~/.claude/CLAUDE.md)に置くと、すべてのプロジェクトに共通して適用されるグローバル設定として機能します。個人環境全体に日本語指示を適用したい場合はこちらを使います。
なお、正確なパスや仕様は公式ドキュメントで最新情報を確認してください。
ロケールとシステム環境変数の確認手順
設定を変えても再発する場合、システム環境変数が設定ファイルより優先されている可能性があります。環境変数を確認し、明示的に設定しておくことが再発防止になります。
Windowsでの確認と設定手順は、次のとおりです。
- 「システムのプロパティ」→「環境変数」を開く
- 「ユーザー環境変数」に次の変数が設定されているか確認する
```
PYTHONUTF8 = 1
LANG = ja_JP.UTF-8
```
- 設定されていない場合は「新規」から追加する
- 設定後にPCを再起動して反映を確認する
PowerShellのプロファイルに書いた設定は「セッションスコープ」で動作するため、他のアプリから起動されたプロセスには引き継がれないことがあります。システム環境変数として設定することで、すべてのプロセスに確実に適用可能です。
macOS/Linuxの場合は、 `/etc/environment`(システム全体)または `~/.profile`(ユーザー単位)に`LANG=ja_JP.UTF-8` を記載し、再ログインで反映されます。
Claude Codeの文字化けによく抱く疑問

最後に、Claude Codeの文字化けに関して多く寄せられる疑問を解説します。
再起動したら設定が元に戻るのはなぜ?
再起動後に設定がリセットされる原因は、設定をセッション内にしか保存していないためです。
PowerShellで `chcp 65001` や `[Console]::OutputEncoding = [System.Text.Encoding]::UTF8` を手動で実行した場合、その設定は現在開いているウィンドウだけに有効です。ウィンドウを閉じると消えるため、永続的に設定を維持したいなら以下の対策を行いましょう。
- PowerShellプロファイル(`$PROFILE`)に設定を書く
- システム環境変数(`PYTHONUTF8=1`)として登録する
PowerShellのプロファイルに設定を記載するか、システム変数に登録することで継続して設定を持ち越せます。
なお、プロファイルへの書き込み権限がない環境(会社の管理PCなど)では、管理者権限が必要なケースがあります。
Gitのコミットメッセージが文字化けした際は?
Git のコミットメッセージが文字化けする原因は、Gitの文字コード設定がUTF-8以外になっているためです。
次のコマンドで現在の設定を確認します。
```
git config --global core.quotepath false
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
```
`core.quotepath false` は、日本語ファイル名がエスケープ表示される問題を防ぎます。`i18n.commitencoding` はコミットメッセージの文字コードを、`i18n.logoutputencoding` は `git log` の出力文字コードをそれぞれ指定します。
設定後に `git log –oneline` を実行し、過去のコミットメッセージが正しく表示されれば成功です。
なお、すでに文字化けした状態でコミットされたメッセージは後から変換できません。`git rebase -i` を使って書き直すか、次回以降のコミットから正しく設定されるように対処してください。
また、Windows環境でGit Bashを使っている場合は、Git Bash自体の文字コード設定も確認が必要です。Git Bashの設定ファイル(`~/.bashrc` または `~/.bash_profile`)に `export LANG=ja_JP.UTF-8` を追記することで対応できます。
まとめ
今回は、Claude Codeでの文字化けについて解説しました。
Claude Codeの文字化けは、UTF-8とShift_JISの不一致が主な原因です。
PowerShellのプロファイルに文字コード設定を追記し、システム環境変数に `PYTHONUTF8=1` を登録することで、Windowsでの文字化けはほとんど解消できます。macOS/Linuxはロケールが `ja_JP.UTF-8` になっているか確認するだけで十分です。
1度設定を行えば継続して文字化けが起きにくい環境を作れるため、本記事を参考に対策を行ってください。
