VS Codeの文字化けを直す方法|Shift JISで開き直す手順

VS Codeの文字化けを直す方法|Shift JISで開き直す手順 パソコン

VS Codeでファイルを開いたら、日本語のところが「�」のような記号だらけになっていた。そんな経験はありませんか?

私も、プログラムや人からもらったファイルを開いたときに、ときどき文字化けします。そういうときは、画面の右下から「Shift JIS」を選び直して開き直しています。VS Codeは、最初の設定では「Shift JIS」で開かないからです。

この記事では、その直し方を順番に説明します。あわせて、直すつもりでファイルを壊してしまう落とし穴もまとめました。

この記事でわかること
  • VS Codeで文字化けする理由
  • 「Shift JIS」で開き直す手順(右下から3回クリック)
  • 「再度開く」と「保存」のちがい(ここを間違えると壊れます)
  • 毎回選ぶのが面倒なときの設定

結論:「エンコード付きで再度開く」でShift JISを選ぶ

やりたいこと押すところ
文字化けを直して読む右下の[UTF-8]→[エンコード付きで再度開く]→[Japanese (Shift JIS)]
ファイルの形そのものを変える右下の[UTF-8]→[エンコード付きで保存]→ 保存したい形
毎回選ぶのが面倒設定の「Auto Guess Encoding」にチェック

文字化けしたときに押すのは、「再度開く」のほうです。「保存」のほうではありません。理由はあとで説明します。

なぜ文字化けするの?

文字は、パソコンの中では数字の並びとして保存されています。その「文字と数字の対応表」が文字コード(VS Codeでは「エンコード」と呼びます)です。

日本語でよく使われる文字コードは、おもに2つあります。

  • UTF-8:いまの標準。VS Codeは最初の設定でこれを使います
  • Shift JIS:昔のWindowsでよく使われた形。古いプログラムや、人からもらったファイルに残っています

Shift JISで書かれたファイルを、UTF-8の対応表で読もうとすると、正しい文字に戻せません。これが文字化けです。ファイルが壊れているわけではなく、読み方がずれているだけなので、読み方を変えれば元どおりに読めます。

Shift JISで開き直す手順

STEP 1:右下の「UTF-8」をクリック

VS Codeの画面のいちばん下(ステータスバー)の右のほうに、「UTF-8」と表示されています。これが、いまファイルを読んでいる文字コードです。ここをクリックします。

STEP 2:[エンコード付きで再度開く]を選ぶ

画面の上に「アクションの選択」と出て、2つの項目が並びます。

  • エンコード付きで再度開く ← こちらを選ぶ
  • エンコード付きで保存

日本語表示のVS Codeでは、それぞれの下に英語の名前(Reopen with Encoding など)も小さく出ます。

STEP 3:[Japanese (Shift JIS)]を選ぶ

文字コードの一覧が出ます。いちばん上に、VS Codeが中身から推測した文字コードが「コンテンツから推測」という説明つきで出ていることがあります。Shift JISのファイルなら、ここにJapanese (Shift JIS)が出ることが多いです。

出ていないときは、上の入力欄に shift と打つと、Japanese (Shift JIS) だけに絞り込めます。選ぶと、その場で読み直されて、日本語が正しく表示されます。右下の表示も「Shift JIS」に変わります。

このまま直して保存すると、ファイルはShift JISのまま保存されます。相手のソフトがShift JISで読む前提なら、それで大丈夫です。

「再度開く」と「保存」はまったくちがう

名前が似ていますが、やっていることは正反対です。

項目やることファイルの中身
エンコード付きで再度開く読み方を変える変わらない
エンコード付きで保存選んだ文字コードで書き直す書き換わる

文字化けして見えている状態で「保存」を選ぶと、化けた文字のまま書き直されてしまいます。先に「再度開く」で正しく読めるようにして、それから必要なら「保存」で形を変える、という順番です。

つまずきやすいところ

化けたまま文字を打たない
  • 自動保存をオンにしている場合:文字化けした状態で1文字でも打つと、初期設定では約1秒後に保存されます。化けて「�」になった部分は、あとから元の文字に戻せません
  • 自動保存がオフの場合:「再度開く」を選ぶと「アクティブなテキスト エディターを元に戻し、別のエンコードで再度開きますか?」と聞かれます。[変更を破棄して再度開く]を押すと、打った内容は消えます
  • 文字化けに気づいたら、何も打たずに、まず開き直す。人からもらったファイルは、先にコピーを取っておくと安心です

VS Codeのインストール記事では、最初の設定として自動保存をおすすめしています。便利な設定ですが、文字化けのときだけは気をつけてください。

毎回選ぶのが面倒なら:文字コードを自動で推測する設定

Shift JISのファイルをよく開くなら、開くときにVS Codeに文字コードを推測させる設定があります。最初はオフになっています。

  1. メニューの[ファイル]→[基本設定]→[設定]を開く(Ctrl+, でも開けます)
  2. 上の検索欄に autoGuessEncoding と入力する
  3. 「Files: Auto Guess Encoding」のチェックを入れる

これで、ファイルを開くときにVS Codeが中身を見て文字コードを推測するようになります。ただし推測なので、外れることもあります。短いファイルや、日本語が少ししか入っていないファイルは、当てにくいことがあります。外れたときは、上の手順で選び直してください。

なお、最初の文字コードそのもの(「Files: Encoding」)をShift JISに変える方法もあります。ただ、そうすると新しく作るファイルもShift JISになります。いまはUTF-8が標準なので、最初の設定はUTF-8のままにしておくのがおすすめです。

よくある質問

Q. UTF-8に変えて保存し直してもいいですか?

自分だけで使うファイルなら、正しく読めている状態で[エンコード付きで保存]→[UTF-8]を選べば変えられます。ただし、そのファイルをShift JISで読む前提の古いソフトや相手に渡すなら、変えないほうが安全です。人からもらったファイルは、そのままの形で返すのが基本です。

Q. フォルダー全体から検索すると、文字化けしたファイルが見つかりません

VS Codeの公式の説明によると、「Auto Guess Encoding」はフォルダー全体の検索には効きません。検索では「Files: Encoding」の設定だけが使われます。Shift JISのファイルの中の日本語を検索したいときは、この点に気をつけてください。

Q. 右下に「UTF-8」が出ていません

ファイルを開いて、そのファイルのタブを選んでいるときに表示されます。何も開いていないときや、ファイル以外の画面(設定など)を見ているときは出ません。

まとめ

この記事のポイント
  • 文字化けは「読み方のずれ」。ファイルは壊れていない
  • 直すときは右下の[UTF-8]→[エンコード付きで再度開く]→[Japanese (Shift JIS)]
  • [エンコード付きで保存]は中身を書き換える。化けたまま使わない
  • 化けたまま文字を打たない(自動保存に注意)

VS Codeの入れ方と最初の設定は、VS Codeのインストール・日本語化|初期設定とターミナルの使い方にまとめています。もっと軽いテキストエディターを探しているなら、Notepad++の日本語化と初期設定もどうぞ。

コメント

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