VS Code(Visual Studio Code)のターミナルで日本語を入力すると、変換を確定した瞬間に文字が消えてしまう、文字化けして読めない、表示がズレて入力位置がおかしくなる——こんなトラブルに悩んでいませんか?
プログラミング学習やWeb開発でVS Codeを使っている人は多いですが、ターミナルの日本語まわりのトラブルは2025〜2026年になっても報告が絶えません。VS CodeのGitHub Issuesにも日本語IMEに関するバグ報告が多数上がっています。
この記事では、2026年2月時点の情報をもとに、VS Codeターミナルで日本語入力がうまくいかない5つの原因と、それぞれの具体的な対処法をわかりやすく解説します。
原因1:文字コードの不一致(CP932 vs UTF-8)
一番多い原因がコレ。VS CodeのエディタはUTF-8で動いていますが、Windowsのターミナル(PowerShell / コマンドプロンプト)はデフォルトでCP932(Shift-JIS)という別の文字コードを使っています。
つまり、「英語しか話せない人」と「日本語しか話せない人」が会話しようとしているようなもの。文字コードが違うと、日本語が文字化けしたり、入力した文字が正しく表示されなかったりします。
対処法:ターミナルの文字コードをUTF-8に変更する
方法1:コマンドで一時的に変更する
ターミナルで以下のコマンドを入力してEnterを押します。
chcp 65001
これでターミナルの文字コードがUTF-8に切り替わります。ただし、ターミナルを閉じるたびに元に戻ってしまいます。
方法2:settings.jsonで永続的に設定する
VS Codeで Ctrl + Shift + P(Macは Cmd + Shift + P)を押して「settings json」と検索し、settings.json を開きます。以下を追加してください。
{
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "chcp 65001"]
}
}
}
これで、ターミナルを開くたびに自動でUTF-8に切り替わります。
方法3:Windowsのシステム設定で根本解決する
Windowsの「設定」→「時刻と言語」→「言語と地域」→「管理用の言語の設定」→「システムロケールの変更」で、「ワールドワイド言語サポートでUnicode UTF-8を使用」にチェックを入れてPCを再起動します。これが最も根本的な解決策です。
原因2:GPUアクセラレーションの影響
VS Codeのターミナルは描画を高速化するためにGPUアクセラレーション(グラフィックボードの力を借りて画面を高速に描く機能)を使っています。これが日本語のような全角文字の表示幅の計算を狂わせることがあります。
具体的には、日本語を入力するとカーソルの位置がズレる、文字が重なって表示される、変換候補ウィンドウの位置がおかしいといった症状が出ます。
対処法:GPUアクセラレーションをオフにする
settings.json に以下を追加します。
{
"terminal.integrated.gpuAcceleration": "off"
}
描画速度がほんの少し遅くなる可能性はありますが、体感できるほどではありません。日本語入力の安定性を優先しましょう。
原因3:Unicode幅の計算バージョンが古い
VS CodeのターミナルにはUnicodeバージョンの設定があります。これは「全角文字を画面上でどれくらいの幅で表示するか」を計算するためのルールです。
デフォルトのバージョンが使っているシェルや環境と合っていないと、日本語の文字幅が正しく計算されず、表示がズレたり、文字が重なったりします。
対処法:Unicodeバージョンを変更する
settings.json に以下を追加します。
{
"terminal.integrated.unicodeVersion": "11"
}
Unicode 11は2018年にリリースされたバージョンですが、多くのシェル環境との互換性が高く、日本語の全角文字幅の計算が安定します。設定を変更したら、ターミナルを閉じて開き直してください。
原因4:拡張機能がIME入力を妨害している
VS Codeにインストールしている拡張機能が、日本語入力(IME)の動作を邪魔していることがあります。2025年以降、特に報告が多いのは以下のケースです。
- VSCodeVim:Enterキーによる変換確定がVimのコマンドとして処理されてしまい、日本語の変換が確定できない問題が報告されています(VS Code 1.101.0以降で発生)
- Claude Code / Gemini CLIなどのAIツール:ターミナル内で動作するAIツールが全角文字の幅を正しく認識できず、表示がずれる問題が報告されています
- その他のターミナル連携拡張機能:キー入力をフックする拡張機能全般が、IMEのcompositionイベント(変換中の仮入力)を横取りする可能性があります
対処法:拡張機能を一時的に無効化して切り分ける
まず、拡張機能が原因かどうかを確認します。ターミナル(VS Codeのターミナルではなく、OS標準のターミナル)から以下のコマンドでVS Codeを起動してください。
code --disable-extensions
この状態で日本語入力が正常に動くなら、拡張機能が原因です。あとは拡張機能を1つずつ有効にしていけば、犯人を特定できます。
VSCodeVimを使っている場合は、settings.jsonに以下を追加すると改善することがあります。
{
"vim.autoSwitchInputMethod.enable": true
}
原因5:Enterキーが変換確定とコマンド実行の両方に反応してしまう
これは2025年後半から報告が増えている比較的新しい問題です。日本語のIMEで変換候補を選んでEnterキーを押すと、変換の確定と同時に、VS Codeのフォーム送信やコマンド実行が発動してしまうという症状です。
たとえば、ブランチ名を日本語で入力しているときにEnterで変換を確定すると、入力途中なのに勝手にブランチが作成されてしまうことがあります。VS Code 1.105.1で報告されたこの問題は、1.104.3では発生しなかったとのことで、特定バージョンでの不具合です。
対処法:VS Codeを最新版にアップデートする
この手の問題は、VS Codeのアップデートで修正されることがほとんどです。以下の手順でアップデートしてください。
Ctrl + Shift + P(MacはCmd + Shift + P)を開く- 「Update」と入力して「Check for Updates...」を選択
- アップデートがあればインストールして再起動
2026年2月時点の最新安定版はVS Code 1.97系です。もしアップデートしても直らない場合は、VS Code Insiders版で修正済みの可能性があるので、そちらを試してみてください。
まとめ:設定3つをまとめて入れるのがおすすめ
ここまで5つの原因と対処法を紹介しましたが、「どれが原因かわからない!」という人は、以下の設定をまとめて settings.json に追加してしまうのが手っ取り早いです。
{
"terminal.integrated.gpuAcceleration": "off",
"terminal.integrated.unicodeVersion": "11",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "chcp 65001"]
}
}
}
settings.json の開き方は、Ctrl + Shift + P → 「settings json」で検索 → 「Preferences: Open User Settings (JSON)」を選択です。
これで大半のケースは解決します。それでもダメなら、拡張機能の無効化テスト(code --disable-extensions)を試してみてください。
FAQ
Macでも同じ症状は起きますか?
はい、起きることがあります。ただし、文字コードの不一致(原因1)はWindows特有の問題です。MacではGPUアクセラレーション(原因2)や拡張機能の干渉(原因4)が主な原因になります。settings.jsonの設定はMacでも同じように使えます。
settings.jsonの場所がわかりません。どこにありますか?
VS Codeで Ctrl + Shift + P(Macは Cmd + Shift + P)を押して「settings json」と検索し、「Preferences: Open User Settings (JSON)」を選べば自動で開きます。ファイルの場所を直接探す必要はありません。
設定を変更したのに反映されません
settings.jsonを保存した後、ターミナルを閉じて新しく開き直す必要があります。既存のターミナルには設定が反映されません。それでもダメなら、VS Code自体を再起動(完全に閉じてから開き直す)してみてください。
WSL(Windows Subsystem for Linux)でも同じ対処法で直りますか?
WSLを使っている場合は、原因1の文字コード設定は不要です(WSLはデフォルトでUTF-8)。GPUアクセラレーションのオフ(原因2)とUnicodeバージョンの変更(原因3)は同様に有効です。WSL固有の問題がある場合は、WSL側のロケール設定(localeコマンドで確認)もチェックしてください。
参考文献
- Japanese text Input causes hard crash in all text fields · Issue #238811 — microsoft/vscode, GitHub, 2025年
- Pressing Enter to confirm Japanese IME conversion simultaneously submits the Create Branch form · Issue #272407 — microsoft/vscode, GitHub, 2025年
- Terminal Basics - Visual Studio Code Documentation — Microsoft, 公式ドキュメント
- Japanese IME conversion not committed when pressing Enter with VSCodeVim enabled · Issue #9672 — VSCodeVim/Vim, GitHub, 2025年



