Anthropic社が提供するCLIツール「Claude Code」は、開発者のターミナル上で直接動く頼もしい存在です。しかし、いざ日本語で指示を出したり回答を受け取ったりしようとすると、画面に表示される文字がぐちゃぐちゃに化けてしまい、絶望したことはありませんか?
この問題は、AIの頭脳が悪いわけではなく、私たちが使っている「ターミナル(黒い画面)」の表示設定に原因があります。この記事では、日本語の文字化けや「□(豆腐)」表示を今すぐ直し、快適にClaude Codeを使いこなすための設定手順を分かりやすく紹介します。
ターミナルで日本語が文字化けする仕組みを理解しよう
Claude Codeがどれほど賢く日本語を生成しても、それを受け取るターミナル側の設定が古いと、言葉が正しく画面に映りません。文字化けを直す第一歩は、自分のPCの中で「情報のズレ」がどこで起きているのかを知ることです。
文字コードにはいくつか種類がありますが、Claude Codeは世界共通の「UTF-8」というルールで会話をしようとします。対して、古いWindows環境などは別のルールを使おうとするため、通訳が間に合わずに文字が化けてしまいます。まずは、この噛み合わない状態がなぜ起きるのか、その仕組みを整理しましょう。
Claude Codeは標準でUTF-8を使おうとする
Claude Codeの内部エンジンである「Claude 3.7 Sonnet」などは、日本語を完璧に理解し、出力する能力を持っています。そして、その出力をターミナルに送る際、現在の標準である「UTF-8」というエンコーディングを採用しています。
このUTF-8は、日本語の漢字やひらがなだけでなく、世界中の文字を一つのルールで扱える便利な仕組みです。モダンなWebブラウザやエディタはこの形式が当たり前になっていますが、ターミナルの世界ではいまだに一世代前のルールが残っていることが多く、これが摩擦の原因となります。
ターミナル側が日本語を表示できる準備ができていない
文字化けが起きる最大の要因は、出力された「UTF-8のデータ」を、ターミナルが「別のルール(Shift-JISなど)」として読み取ろうとすることにあります。記号や数字の羅列として誤解して画面に出してしまうため、人間には読めない文字列に変わってしまうのです。
例えば、海外製のツールを導入した直後に「・」「∃」といった謎の記号が並ぶのは、まさにこの解釈ミスが原因です。
「AI側は正しい日本語を投げているけれど、受け手側の設定が追いついていない」
こうした状況を理解しておけば、AI自体の不具合ではないと安心して対策に取り組めます。
表示の問題とAIの思考能力は全く別物である
画面に表示されている文字が化けていても、実はClaude Codeの「思考」そのものは正常に動いているケースがほとんどです。実際にファイルを書き換えさせると、ファイルの中身は綺麗な日本語で保存されていることも珍しくありません。
つまり、私たちが取り組むべきは「AIの頭脳を直すこと」ではなく、「ターミナルの看板(表示)を掛け替えること」です。
文字化けは深刻な不具合に見えますが、表示の設定さえパチっと合わせれば、それまでのイライラが嘘のように解決します。
| 項目 | AI(Claude Code)の状態 | ターミナル(PC側)の状態 |
| 文字コード | 常にUTF-8で出力 | 日本語環境ならShift-JISが多め |
| 日本語能力 | 非常に高く、正しく返答 | 設定次第で読み取りエラーに |
| ファイル操作 | 日本語コメントも扱える | 表示だけが追いつかない |
Windowsユーザーを悩ませる文字コードの壁
Windowsの標準的なターミナル環境は、長らく日本独自の「Shift-JIS(CP932)」という規格を優先してきました。これが、最新のAIツールであるClaude Codeと最も相性が悪いポイントです。
ここでは、Windows特有の事情がどのように日本語表示を邪魔しているのかを確認します。OSの古い設定が残っている理由や、バージョンによる挙動の違いを知ることで、自分に最適な設定箇所が見えてくるはずです。
標準のShift-JISが日本語表示を邪魔している
WindowsのコマンドプロンプトやPowerShellを起動したとき、標準の文字コードはShift-JISに設定されています。これは、インターネットが普及する前から使われている日本の伝統的な規格ですが、UTF-8とは互換性がありません。
Claude Codeが「あ」という文字をUTF-8で送っても、ターミナルはそれを「Shift-JISのルールにある別の記号」だと解釈してしまいます。
これがいわゆる「文字化け」の正体です。
OS側としては日本のユーザーのために良かれと思って残している設定ですが、最新のAI開発においては、この設定こそが最大の障壁となっています。
古いコマンドプロンプトの設定が引き継がれている
Windows 10や11を使っていても、ターミナルの内部設定は数十年前の古い仕様を引き継いでいることが多々あります。最新のツールを使おうとしても、土台となる環境が昭和や平成の初期から変わっていないようなイメージです。
特に、フォントの設定や描画の仕組みが古いと、たとえ文字コードを合わせても文字が表示されない「□(豆腐)」現象が起きます。
「最新のPCなのに、なぜこんなに日本語に弱いのか?」
そう感じるかもしれませんが、それは互換性を重視しすぎたWindowsゆえのジレンマとも言えます。
OSのバージョンによってターミナルの挙動が異なる
Windowsのバージョンや、使用しているアプリ(コマンドプロンプトなのか、PowerShellなのか、Windows Terminalなのか)によって、解決までの手順が微妙に異なります。
以前のバージョンでは非常に複雑だったUTF-8化の手順も、最近の「Windows Terminal」であれば数クリックで設定できるようになっています。
自分の環境が「どの世代のターミナル」を使っているのかを確認し、適切なアプローチを選ぶことが大切です。
古いコマンドプロンプトを直接使うのではなく、モダンなターミナルアプリへ乗り換えることも、解決への大きな一歩となります。
【対処法1】コマンド一発で文字コードをUTF-8へ切り替える
最も手軽で、今すぐ試せる解決策がコマンドによる文字コードの変更です。作業を始める前に特定のコマンドを打ち込むだけで、その場の表示環境をUTF-8に矯正できます。
ここでは、Windowsユーザーにとって救世主となる魔法の数字「65001」の使い方を解説します。難しい理屈は抜きにして、まずはこのコマンドを試してみることから始めましょう。
chcp 65001コマンドを実行して環境を整える
文字化けが発生しているターミナルの画面で、以下のコマンドを打ち込んでみてください。
chcp 65001
このコマンドは、ターミナルの文字コード(コードページ)を強制的にUTF-8(65001)へ変更する命令です。
実行した後にClaude Codeを起動すれば、それまで化けていた日本語が嘘のように綺麗に表示されるはずです。
ただし、この設定はその時開いているウィンドウだけで有効です。
一度ターミナルを閉じると元の設定に戻ってしまうため、あくまで「一時的な特効薬」として覚えておきましょう。
現在の文字コードが何になっているか確認する方法
「今の設定がどうなっているか分からない」というときは、引数なしでコマンドを打つことで現在の状態を確認できます。
ターミナルで chcp とだけ打つと、「現在のコード ページ: 932」といった結果が返ってきます。
932はShift-JISを指しているため、この数字が出ている限りClaude Codeの日本語は化けてしまいます。
自分のPCの状態を数字で客観的に把握できるため、トラブルが起きた際の初期診断として非常に役立ちます。
「まずはchcpで確認」という習慣をつけるだけで、文字化けでパニックになることが少なくなります。
管理者権限が必要になるケースに注意する
基本的には通常の権限で実行できるコマンドですが、PCのセキュリティ設定によっては、文字コードの変更が制限されていることがあります。
もしコマンドを打っても設定が変わらない、あるいはエラーが出る場合は、ターミナルを「管理者として実行」してから試してみてください。
特に会社から支給されているPCなど、管理が厳しい環境ではこの権限の問題が絡んでいることがあります。
コマンドを打っても文字が消えてしまった場合は、文字コードだけでなく「フォント」が対応していない可能性があります。
文字コードをUTF-8にしても、その文字の形(グリフ)を持たないフォントを使っていると、画面には何も映らなくなります。
その際は、次の章で紹介するフォント設定も合わせて見直しましょう。
【対処法2】自動で日本語対応させるための永続設定
毎回ターミナルを開くたびにコマンドを打つのは面倒ですよね。そこで、PCを起動した瞬間からClaude Codeが日本語を扱えるようにする「永続的な設定」を行いましょう。
PowerShellを使っているなら、「プロファイル」という仕組みを利用して自動化が可能です。一度設定してしまえば、明日からは文字化けのことを完全に忘れて開発に没頭できます。
$PROFILE変数を編集して設定を自動化する
PowerShellには、起動時に自動で実行される設定ファイルが存在します。
ターミナルで notepad $PROFILE と打ち込んでみてください。メモ帳が開くはずです。
もしファイルが存在しないという警告が出たら、新しく作成して問題ありません。
このファイルは、あなたのターミナルを「自分仕様」に染めるための、いわば秘伝のタレを書き込む場所です。
ここに文字コードの設定を書き込んでおけば、Claude Codeを呼び出すたびに自動で通訳が準備されるようになります。
起動スクリプトに文字コードの指定を追記する
開いたプロファイルファイルの中に、以下の内容を貼り付けて保存してください。
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
この記述は、PowerShellの出力と入力をすべてUTF-8で統一するという宣言です。
単にコードページを変えるだけでなく、システム内部のやり取りまでUTF-8化するため、非常に安定した日本語環境が作れます。
設定を保存したら、一度ターミナルを閉じて開き直しましょう。
特別なコマンドを打たなくても、Claude Codeの日本語回答がスムーズに表示されるようになっているはずです。
共有PCでも設定を反映させるためのコツ
もし複数のメンバーで同じPCを使っている場合や、複数の環境で同じ設定を使い回したいときは、個別の設定ファイルだけでなくシステム全体の環境変数も意識しましょう。
- 自分のユーザー専用の設定にするか
- PC全体(全ユーザー)の設定にするか
用途に合わせて選ぶことができますが、基本的には自分のユーザープロファイルを編集するのが安全です。
他の人の環境を壊す心配がなく、自分だけの最強のClaude Code環境を構築できます。
こうした「自動化の仕組み」を整えることは、エンジニアとしてのスキルアップにも繋がる重要なステップです。
【対処法3】VS Codeの統合ターミナル設定を日本語向けに整える
多くの開発者は、VS Code(Visual Studio Code)の中でClaude Codeを動かしているはずです。この場合、Windows自体の設定よりも、VS Code側の「統合ターミナル設定」が優先されます。
VS Codeを使っているのに日本語が化ける場合は、エディタの設定画面(settings.json)を見直すだけで解決することがあります。その具体的な手順を確認しましょう。
settings.jsonでターミナルのエンコーディングを指定する
VS Codeの設定画面を開き、右上のアイコンをクリックして settings.json を表示します。
そこに、ターミナルの挙動を制御する項目を追加しましょう。
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "-Command", "chcp 65001"]
}
}
このように設定することで、VS Codeのターミナルが立ち上がる際、自動的に chcp 65001 が実行されます。
エディタの外側の設定をいじらなくて済むため、最も安全で確実な方法の一つです。
エディタとターミナルの文字コードを一致させる
エディタ自体がファイルを「Shift-JIS」で開いているのに、ターミナルが「UTF-8」で動いていると、やはりどこかで文字化けが起きます。
特にソースコード内の日本語コメントが化ける場合は、この不一致が原因です。
VS Codeの右下に表示されている「UTF-8」という文字を確認してください。
ここが別の形式になっている場合は、迷わずUTF-8に変更しましょう。
AIはファイルを読み込む際、エディタの表示設定ではなく「実データのエンコード」を見ます。
人間が見ている画面とAIが見ているデータの足並みを揃えることが、スムーズな連携の鍵となります。
統合ターミナルのレンダリング設定を変更する
「文字コードは合っているのに、文字が重なったり消えたりする」
そんなときは、VS Codeのターミナルの描画方式(レンダリング)を疑ってみましょう。
設定から Terminal > Integrated: Gpu Acceleration を探し、設定値を off や canvas に変更してみてください。
PCのグラフィック性能との相性で日本語の描画が不安定になることがありますが、この設定変更で解消されるケースが多いです。
| 設定項目 | 推奨値 | 効果 |
| Gpu Acceleration | off / canvas | 文字の重なりやチラつきを解消 |
| Unicode Version | 11 | 特殊な絵文字や記号の表示を安定化 |
| Cursor Style | block | ターミナル内でのカーソル位置を明確化 |
【対処法4】日本語表示に対応したフォントへ変更する
文字化けは直ったけれど、漢字の形が変だったり、特定の文字が「□(豆腐)」になってしまう場合は、フォントの問題です。ターミナルに最初から入っているフォントは、日本語を正しく表示する力が弱いことがあります。
ここでは、プログラミングに適した、日本語に強いフォントの導入方法を紹介します。読みやすさは作業の疲れにくさに直結するため、この機会にお気に入りのフォントを設定しましょう。
日本語表示に強いモダンなフォントを導入する
おすすめは、マイクロソフトが開発した「Cascadia Code」や、日本語の視認性を極めた「Cica(シカ)」、あるいは「Migu 1M」といったフォントです。
これらのフォントは、日本語の全角文字と英語の半角文字のバランスが絶妙に設計されています。
AIが生成した複雑な日本語の回答も、文字が潰れることなく、はっきりと読み取ることができます。
特に「Cica」はプログラミング専用に調整されているため、似たような文字(1とl、0とOなど)の見分けがつきやすく、開発効率を大きく底上げしてくれます。
ネットからダウンロードしてPCにインストールする手間はかかりますが、その価値は十分にあります。
ターミナルの設定画面からフォントを選択し直す
新しいフォントをインストールしたら、忘れずにターミナルの設定から適用しましょう。
Windows Terminalを使っている場合は、設定の「プロファイル」から「外観」を選び、フォントフェイスを変更します。
VS Codeを使っている場合は、設定の Editor: Font Family の先頭にフォント名を記入します。
この際、フォント名を正しく入力しないと反映されません。
「”Cica”, “Cascadia Code”, Consolas」といった具合に、カンマ区切りで優先順位をつけて記載するのがコツです。
お気に入りのフォントが画面に映った瞬間、Claude Codeとの対話がさらに楽しくなるはずです。
等幅フォント(Monospace)を選んで表示崩れを防ぐ
フォント選びで最も大切なルールは「等幅(Monospace)フォント」を選ぶことです。
文字ごとに幅が違うプロポーショナルフォントをターミナルで使うと、行がズレたり、日本語と英語が重なったりして、非常に読みづらくなります。
Claude Codeが出力する表形式のデータや、インデント(字下げ)の揃ったコードを正しく表示するには、すべての文字の幅が一定であることが不可欠です。
- NGな例: MS P明朝(幅がバラバラ)
- OKな例: MS ゴシック、Cica、Consolas(幅が一定)
「なんだか画面がガタガタするな」と感じたら、まずはフォントの名前に「P」が付いていないか確認してみてください。
整った画面は、バグの発見を早め、ミスを防ぐ心理的な安心感を与えてくれます。
日本語の入ったソースコードを正しく解析させるコツ
表示の問題が解決したら、次はClaude Codeに日本語の入ったファイルを「正しく読ませる」設定に注目しましょう。せっかくコメントを日本語で書いても、AIがそれを解読できなければ意味がありません。
ここでは、解析エラーを防ぐためのファイルの保存方法や、ディレクトリ名の注意点についてまとめました。AIが迷わずあなたのコードを理解できるように、お作法を整えていきましょう。
ソースファイル自体をUTF-8(BOMなし)で保存する
日本語を含むファイルを保存する際は、必ず「UTF-8(BOMなし)」という形式を選んでください。
「BOM(Byte Order Mark)」とは、ファイルの先頭に付く目印のようなものですが、これが付いているとClaude Codeが「余計な文字がある」と誤解してエラーを出すことがあります。
VS Codeであれば、保存時の設定で簡単にBOMなしに変更できます。
既存の古いファイルをAIに読ませる前に、まずは一括でエンコードを変換しておくと安心です。
「プログラムは英語で書くもの」という先入観があるかもしれませんが、今のAIは日本語の意図を汲み取るのが非常に得意です。
丁寧な日本語コメントはAIへの最良の指示書(コンテキスト)になります。
だからこそ、その情報を正確に伝えるための「入れ物(エンコード)」にこだわることが大切です。
日本語のパスが含まれるディレクトリでの動作確認
プロジェクトを保存しているフォルダ名に日本語が混ざっている場合、Claude Codeがファイルの場所を見失うことがあります。
AIエージェントは内部でコマンドを実行してファイルを探索しますが、日本語のフォルダ名はOSごとの処理の違いでパスが通りにくい場所の一つです。
- 安全な例: C:\Users\Taro\projects\my-app
- 危ない例: C:\Users\太郎\デスクトップ\開発用
可能であれば、プロジェクトのパスには半角英数字のみを使うのが無難です。
「どうしても日本語を使いたい」という場合は、Windows Terminalなどの最新環境を使い、パスの解釈に齟齬が出ないようにしましょう。
文字列リテラルをマルチバイトとして認識させる
コードの中に「”こんにちは”」といった直接の文字列(リテラル)を書く際、AIがそれを化けさせずに処理できるか確認しましょう。
基本的にはUTF-8で統一していれば問題ありませんが、古いコンパイラや環境を使っていると、実行時に文字化けが発生することがあります。
Claude Codeに修正を依頼する際、「日本語の文字列はすべてUTF-8で扱って」と一言添えるのが、2026年現在の賢い指示の出し方です。
確かにAIは万能ですが、私たちの環境にある古いルール(歴史的な制約)までは把握しきれません。
環境の制約をあらかじめAIに共有しておくことで、実行できないコードを提案されるリスクを最小限に抑えることができます。
環境変数を設定して多言語対応を安定させる
OSの深層部分にある「環境変数」を設定することで、Claude Codeをより確実に日本語対応させることができます。これは、表示だけでなくツールの挙動全体に「私は日本語環境で使いたい」と宣言する作業です。
ここでは、エンジニアなら一度は目にしたことがある「LANG」変数の設定方法を紹介します。これを設定しておくと、Claude Code以外の多くの開発ツールも、自動的に日本語で使いやすくなります。
LANG変数にja_JP.UTF-8を割り当てる
LinuxやmacOSではおなじみの設定ですが、Windowsでも有効な場合があります。
OSに対して「言語は日本語、文字コードはUTF-8でお願いします」と伝えるための合言葉です。
setx LANG ja_JP.UTF-8
このコマンドを実行、あるいはコントロールパネルから環境変数を追加しましょう。
Claude Codeは内部で様々なシェルコマンドを呼び出しますが、この変数がセットされていることで、呼び出された先でも正しく日本語が引き継がれるようになります。
Windowsのシステム環境変数から設定を追加する手順
コマンドでの設定に不安がある方は、画面からゆっくり設定を行いましょう。
- 「システム環境変数の編集」を検索して開く
- 「環境変数」ボタンをクリック
- 「ユーザー環境変数」の「新規」をクリック
- 変数名に
LANG、変数値にja_JP.UTF-8と入力
この一連の操作で、あなたのユーザーアカウント全体のデフォルト設定が書き換わります。
一見地味な作業ですが、OSレベルで足場を固めることで、予期せぬ場所での文字化けを根こそぎ防ぐことができます。
変更を反映させるためにターミナルを再起動する
環境変数を書き換えた後は、今開いているターミナルには設定が反映されません。
必ず、一度すべてのウィンドウを閉じて、新しくターミナルを立ち上げ直してください。
「設定を変えたのに直らない!」というトラブルの多くは、この再起動忘れが原因です。
再起動して echo $env:LANG(PowerShellの場合)と打ち込み、正しく値が表示されれば準備は完璧です。
Claude Codeを起動して、改めて日本語での対話を試してみてください。
トラブルが解決しない場合の切り分け術
「ここまで試したけれど、まだ化ける!」というときは、問題がどこにあるのかを特定するために「切り分け」を行いましょう。画面の表示が悪いのか、それとも中身のデータが壊れているのかを判断します。
最後の手段として、表示を介さずに確認する方法や、別の実行環境を試す手順を整理しました。焦らず、一つずつ可能性を潰していけば、必ず原因にたどり着けます。
実行結果をリダイレクトしてテキストの中身を確認する
画面の表示が信じられないときは、出力をファイルに直接書き出してみましょう。
claude "こんにちは" > test.txt
このように、末尾に > ファイル名 を付けると、回答が画面ではなくファイルに保存されます。
保存された test.txt をVS CodeなどのUTF-8対応エディタで開いてみてください。
もしエディタ上で日本語が綺麗に見えていれば、問題は「ターミナルの表示設定」だけにあります。
中身まで化けていれば、AIの設定や保存時のエンコードに問題があることが分かります。
「犯人はどこにいるのか」を特定することが、解決への最短ルートです。
別のシェル(Git BashやWSL)で挙動を比較する
標準のPowerShellだけでなく、別の環境でClaude Codeを動かしてみるのも有効なテストです。
- Git Bash: Linux風の環境で、比較的日本語に強い
- WSL (Ubuntu): Windowsの中に本物のLinuxを入れる環境。文字化けには最強の耐性
もしWSLで綺麗に表示されるのであれば、Windows側のPowerShell設定にまだ見落としがあることが確定します。
一つの場所に固執せず、異なる角度から試してみることで、問題の輪郭がはっきりしてきます。
Claude Codeのキャッシュをクリアして再試行する
非常に稀ですが、Claude Codeが過去の誤ったエンコード設定を記憶(キャッシュ)してしまっていることがあります。
一度ログアウトするか、設定ファイルを一時的に削除して、ツールを「初期状態」に戻してみるのも手です。
クリーンな状態で再ログインし、UTF-8の設定が整ったターミナルから起動し直すことで、不具合がスッと解消されることがあります。
「何をやってもダメなら一度リセット」は、ITの世界の鉄則です。
バッファ設定を見直して長い日本語の表示崩れを防ぐ
最後に、意外と見落としがちな「描画バッファ」の設定について触れておきます。日本語は英語に比べてデータ量が多いため、ターミナルの受け皿が小さいと、長い文章の途中で表示がガタつくことがあります。
快適な読解環境を作るための、最後の仕上げを行いましょう。
スクロールバッファのサイズを大きく確保する
ターミナルの設定から、記憶できる行数(バッファサイズ)を増やしておきましょう。
Claude Codeは詳細な解説をしてくれるため、すぐに何百行ものテキストが流れていきます。
「さっきの回答を読み返そうとしたら消えていた」
そんな事態を防ぐために、最低でも10,000行程度のバッファを確保しておくことをおすすめします。
メモリに余裕がある現代のPCなら、この設定によるデメリットはほとんどありません。
ウィンドウ幅と自動改行の設定を確認する
日本語の全角文字は、半角文字2枚分の幅を使います。
ターミナルのウィンドウ幅が中途半端だと、文字の途中で改行が入ってしまい、見た目が非常に悪くなることがあります。
「ウィンドウサイズに合わせて自動で改行する」設定が有効になっているか、フォントのサイズが不自然に大きくないかを確認しましょう。
ゆったりとした幅を確保することで、AIが生成したコードや表が崩れず、ストレスなく目を通せるようになります。
GPUレンダリングのオンオフで描画の不具合を解消する
最近のターミナル(Windows Terminalなど)は、表示を高速化するためにゲームのようにGPU(グラフィックカード)を使って描画しています。
しかし、一部の環境ではこれが日本語フォントの表示崩れを引き起こすことがあります。
もし文字の端が欠けたり、残像が残ったりする場合は、設定から「ハードウェアアクセラレーション」をオフにしてみてください。
滑らかさよりも「正確さ」を優先することが、開発ツールを使いこなす上での賢明な判断です。
まとめ:環境設定を整えればClaude Codeは最強のメンターになる
Claude Codeの日本語文字化け問題は、そのほとんどが「ターミナルの設定をUTF-8に合わせる」だけで解決します。
今回のポイントを簡潔に振り返ります。
- 基本はchcp 65001:まずはコマンド一発で文字コードを切り替えてみる。
- 永続化はプロファイルから:PowerShellの設定ファイルにUTF-8化の魔法を書き込む。
- フォントとBOMに注意:日本語に対応したフォントを選び、ファイルはBOMなしで保存する。
文字化けは、ツールを使いこなす前の小さな「関門」に過ぎません。ここを突破すれば、Claude Codeはあなたの意図を完璧に理解し、日本語で丁寧にガイドしてくれる最強のパートナーへと進化します。
まずは今日、chcp 65001 と打ち込むことから始めてみてください。あなたの開発環境が、これまでになくクリアで快適なものに変わるはずです。

