【VS Code】日本語の文字化けを直す方法|Shift_JISのファイルを開き直す・UTF-8で保存し直す・自動で見分ける

VSCode ITライフハック
この記事は約5分で読めます。
当ページはプロモーションが含まれています

※2026年9月に書き直しました。

VS Code でファイルを開いたら、日本語が「縺薙l縺ッ」や「�」のような、読めない文字になっていた。
VS Code の文字化けは、ほとんどがファイルの文字コードと、VS Code が開くときの文字コードが違うことで起きます。日本語の場合、相手はたいてい Shift_JIS です。

この記事では、まず原因を確かめる方法、次に直し方を、よく出会う順に書きます。

スポンサーリンク

まず、右下の表示を見る

VS Code の画面の右下、行と列の番号の横に「UTF-8」などの文字が出ています。これが、VS Code がそのファイルをどの文字コードとして開いているかです。

VS Code の画面の右下のステータスバー。行と列の番号、スペースの数の横に、UTF-8 というエンコードの表示がある

見え方 よくある原因
「縺薙l縺ッ」のような漢字と半角カナの混ざったもの UTF-8 のファイルを、Shift_JIS として開いている
「�」や「?」がたくさん並ぶ Shift_JIS のファイルを、UTF-8 として開いている
「□」(豆腐)が並ぶ 文字コードではなく、フォントに日本語が入っていない

古い Windows のソフトで作ったファイルや、Excel で保存した CSV は、Shift_JIS のことが多いです。VS Code は、何も設定しないと UTF-8 として開くので、ここでずれます。

スポンサーリンク

直し方1:Shift_JIS で開き直す(読むだけならこれ)

  1. 右下の「UTF-8」の表示をクリックする
  2. 「エンコード付きで再度開く」(英語の表示では Reopen with Encoding)を選ぶ
  3. 一覧から「Japanese (Shift JIS)」を選ぶ

エンコードの表示をクリックしたところ。エンコード付きで再度開く(Reopen with Encoding)と、エンコード付きで保存(Save with Encoding)の2つが選べる

これで読めるようになれば、原因は文字コードです。ファイルの中身は変わっていないので、ほかのソフトで開いたときの見え方も変わりません。
Shift_JIS でも直らないときは、「Japanese (EUC-JP)」も試してください。古い Linux のサーバーにあったファイルは、こちらのことがあります。

直し方2:UTF-8 で保存し直す(これからも VS Code で使うなら)

これからそのファイルを VS Code で編集していくなら、UTF-8 に変えて保存し直すと、毎回開き直さずに済みます。

  1. 直し方1で、正しく読める状態にする
  2. 右下のエンコードの表示をもう一度クリックする
  3. 「エンコード付きで保存」(Save with Encoding)を選ぶ
  4. 「UTF-8」を選ぶ
UTF-8 で保存すると、そのファイルを Shift_JIS のつもりで読むソフトでは、逆に文字化けします。
たとえば、Excel でそのまま開く CSV や、古い業務用のソフトに読み込ませるファイルです。そういうファイルは、保存し直す前にコピーを取っておくか、直し方1だけにしてください。

直し方3:文字コードを自動で見分けさせる

Shift_JIS のファイルをよく開くなら、VS Code に文字コードを自動で見分けさせる設定があります。

  1. 設定を開く(Windows は Ctrl + ,、Mac は command + ,)
  2. 検索欄に「auto guess encoding」と入れる
  3. 「Files: Auto Guess Encoding」にチェックを入れる

settings.json に直接書くなら、次の1行です。

"files.autoGuessEncoding": true

見分ける対象の文字コードを絞りたいときは、「Files: Candidate Guess Encodings」で候補を決められます。日本語なら、Shift_JIS と EUC-JP を入れておくと、見分け違いが減ります。
ただ、自動で見分けるのは推測なので、短いファイルでは外れることがあります。外れたときは、直し方1で開き直してください。

特定の種類のファイルだけ Shift_JIS で開く

「CSV だけはいつも Shift_JIS」のように決まっているなら、ファイルの種類ごとに文字コードを決めておく方法もあります。settings.json に次のように書きます。

"[csv]": {
  "files.encoding": "shiftjis"
}

CSV の種類は、CSV 用の拡張機能を入れていると認識されます。入れていないと、ただのテキストとして扱われて、この設定が効かないことがあります。

ターミナルの文字化け(Windows)

ファイルではなく、VS Code の下のターミナルに出る日本語が化ける場合は、原因が別です。Windows の古い PowerShell(5.1)やコマンドプロンプトは、Shift_JIS で文字を出すためです。

そのターミナルの中だけ、一時的に UTF-8 に切り替えるなら、次を打ちます。

chcp 65001

毎回打つのが面倒なら、新しい PowerShell(7 以降)を入れて、VS Code のターミナルをそちらに切り替えるのが手軽です。PowerShell の開き方や基本は、別の記事にまとめています。

WindowsのPowerShell入門【2026年8月版】開き方から基本のコマンドまで

□(豆腐)が並ぶとき:フォント

文字がすべて □ になるのは、文字コードではなく、使っているフォントに日本語が入っていないためです。
設定の「Editor: Font Family」で、先頭に英語のフォント、そのあとに日本語のフォントを並べると直ります。

"editor.fontFamily": "Consolas, 'BIZ UDGothic', monospace"

Mac なら、日本語のフォントは最初から入っているので、この問題はほとんど起きません。

それでも直らないとき

ファイルを開くときに中身を書き換える拡張機能が、文字化けを起こしていることもあります。
コマンドパレット(Ctrl + Shift + P、Mac は command + shift + P)から「Start Extension Bisect」(拡張機能の二分探索を開始)を選ぶと、原因の拡張機能を探せます。

まとめ

  • まず右下の表示で、VS Code がどの文字コードとして開いているかを見る
  • 読むだけなら「エンコード付きで再度開く」→「Japanese (Shift JIS)」
  • これからも VS Code で使うなら「エンコード付きで保存」→「UTF-8」。ほかのソフトで使うファイルは先にコピーを取る
  • よく開くなら「Files: Auto Guess Encoding」をオンにする
  • ターミナルの文字化けは、PowerShell の文字コードの問題
  • □ が並ぶのは、フォントの問題

初出は2024年1月、2026年9月に書き直しました。メニューや設定の名前は、VS Code のバージョンや表示の言語によって少し違うことがあります。

タイトルとURLをコピーしました