VSCodeで文字コードをShift-JISにする方法

採用はこちら

VSCodeでは、開いているファイルの文字コードをShift-JISに変更したり、ワークスペースで使用する既定の文字コードをShift-JISに設定したりできます。

既存の業務システムや古いソースコード、CSVファイルなどではShift-JISが使われていることがあるため、VSCodeで文字コードを変更する方法を知っておくと便利です。

ただし、現在のWeb開発や一般的なプログラミングではUTF-8が広く使われています。

特別な理由がなければUTF-8を使用し、既存システムとの互換性などで必要な場合にShift-JISを利用するのが基本です。

目次

現在のファイルをShift-JISで保存する方法

UTF-8などで作成されているファイルをShift-JISへ変換したい場合は、VSCodeの「エンコード付きで保存」を利用します。

ステータスバーから文字コードを変更する

VSCodeでファイルを開くと、画面右下のステータスバーに「UTF-8」など、現在使用されている文字コードが表示されます。

Shift-JISで保存する場合は、次の手順で操作します。

  1. Shift-JISに変換したいファイルをVSCodeで開く
  2. 画面右下に表示されている「UTF-8」などの文字コードをクリックする
  3. 「エンコード付きで保存」を選択する
  4. 「Japanese (Shift JIS)」を選択する
  5. ファイルを保存する

英語表示のVSCodeでは、「エンコード付きで保存」は「Save with Encoding」と表示されます。

この操作を行うと、現在のファイルが指定した文字コードで保存されます。

「Save with Encoding」は文字コードを変換して保存する機能

「Save with Encoding」は、現在のファイルを別の文字コードへ変換して保存するための機能です。

たとえば、UTF-8で作成されたCSVファイルをShift-JISに変更したい場合に利用できます。

単にファイルの表示方法を変更する機能ではなく、保存されるファイル自体の文字コードが変わる点が重要です。

Shift-JISのファイルが文字化けした場合の対処方法

もともとShift-JISで作成されているファイルをVSCodeで開いたときに、日本語が文字化けすることがあります。

その場合は、ファイルを保存し直すのではなく、正しい文字コードを指定して開き直します。

「Reopen with Encoding」でShift-JISとして開き直す

文字化けしたファイルは、次の手順で開き直します。

  1. 文字化けしているファイルをVSCodeで開く
  2. 画面右下の「UTF-8」などの文字コード表示をクリックする
  3. 「エンコード付きで再度開く」を選択する
  4. 「Japanese (Shift JIS)」を選択する

英語表示では「Reopen with Encoding」と表示されます。

正しい文字コードを選択できれば、日本語が正常に表示されます。

文字化けした状態で保存しない

文字化けしているファイルを、そのまま別の文字コードで保存するのは避けたほうが安全です。

本来Shift-JISのファイルを別の文字コードとして誤って読み込んでいる状態で保存すると、元の文字データが意図しない形に変換される可能性があります。

文字化けした場合は、まず「Reopen with Encoding」を利用して正しい文字コードで表示できることを確認しましょう。

その後、必要に応じて「Save with Encoding」で別の文字コードへ変換します。

「Reopen with Encoding」と「Save with Encoding」の違い

VSCodeで文字コードを変更するときは、「Reopen with Encoding」と「Save with Encoding」の違いを理解しておくことが重要です。

Reopen with Encodingは読み込み方法を変更する

「Reopen with Encoding」は、現在のファイルを指定した文字コードとして読み直す機能です。

ファイルそのものの文字コードを変換するわけではありません。

たとえば、本来Shift-JISのファイルがUTF-8として開かれ、文字化けしている場合に使用します。

Save with Encodingは文字コードを変換して保存する

「Save with Encoding」は、指定した文字コードへ変換してファイルを保存する機能です。

UTF-8のファイルをShift-JISへ変換する場合などに使用します。

両者の違いを整理すると、次のようになります。

操作主な用途
Reopen with Encoding指定した文字コードとしてファイルを読み直す
Save with Encoding指定した文字コードへ変換して保存する

文字化けを直したいだけなのか、ファイル自体の文字コードを変更したいのかによって使い分けましょう。

VSCodeの既定文字コードをShift-JISにする方法

毎回手動でShift-JISを選択するのが面倒な場合は、VSCodeの設定で既定の文字コードを変更できます。

VSCodeでは「files.encoding」という設定項目を利用します。

設定画面からShift-JISに変更する

WindowsやLinuxの場合は、

Ctrl + ,

macOSの場合は、

Command + ,

でVSCodeの設定画面を開けます。

検索欄に、

files encoding

と入力します。

「Files: Encoding」という設定項目が表示されたら、Shift-JISに変更します。

これにより、その設定が適用される環境で使用する既定の文字コードをShift-JISにできます。

settings.jsonでShift-JISを設定する方法

設定画面ではなく、「settings.json」を直接編集する方法もあります。

files.encodingにshiftjisを指定する

次のように設定します。

{
    "files.encoding": "shiftjis"
}

これにより、VSCodeがファイルを扱う際の既定エンコーディングとしてShift-JISが使用されます。

ただし、この設定を追加しただけで、すでに存在するUTF-8ファイルが自動的にすべてShift-JISへ変換されるわけではありません。

あくまで、VSCodeでファイルを読み書きするときに使用する既定の文字コードを指定する設定です。

参考サイト

【VSCode】ファイルのエンコードを変更・定義する

プロジェクトごとにShift-JISを設定する方法

すべてのプロジェクトでShift-JISを使用する必要がない場合は、VSCode全体の設定ではなく、ワークスペース単位で設定する方法がおすすめです。

.vscode/settings.jsonを利用する

プロジェクトフォルダ内に、

.vscode/settings.json

を作成し、次のように設定します。

{
    "files.encoding": "shiftjis"
}

これにより、そのワークスペース内で使用する既定の文字コードをShift-JISにできます。

たとえば、

  • 古い業務システム
  • 既存のShift-JISプロジェクト
  • レガシーなWindows向けシステム

など、特定のプロジェクトだけShift-JISを使用したい場合に便利です。

既存ファイルが一括変換されるわけではない

ここで注意したいのが、「files.encoding」を設定しても既存ファイルが自動的にShift-JISへ一括変換されるわけではない点です。

そのため、「プロジェクト全体をShift-JISへ変換する設定」というよりも、

「そのワークスペースで使用する既定の文字コードをShift-JISにする設定」

と考えるのが正確です。

すでにUTF-8で保存されているファイルをShift-JISへ変更する場合は、それぞれのファイルを「Save with Encoding」などで変換する必要があります。

Shift-JISを自動判定させる方法

UTF-8とShift-JISなど、複数の文字コードのファイルを扱う場合は、VSCodeの文字コード自動判定機能も利用できます。

files.autoGuessEncodingを有効にする

「settings.json」に次のように設定します。

{
    "files.autoGuessEncoding": true
}

「files.autoGuessEncoding」を有効にすると、VSCodeがファイルの内容から文字コードを推測して開こうとします。

UTF-8とShift-JISのファイルが混在している環境では便利な機能です。

自動判定は必ず成功するわけではない

文字コードの自動判定は便利ですが、100%正しく判定できるわけではありません。

ファイルの内容によっては、Shift-JISが別の文字コードとして判定されることもあります。

重要なファイルや文字化けが発生しやすい環境では、ステータスバーに表示されている文字コードを確認することが重要です。

自動判定する文字コードの候補を指定する方法

比較的新しいVSCodeでは、自動判定時に候補とするエンコーディングを設定することもできます。

files.candidateGuessEncodingsを利用する

「files.candidateGuessEncodings」は、文字コードの自動判定で候補とするエンコーディングを指定するための設定です。

Shift-JISなど、特定の文字コードを利用する環境では、自動判定を補助する設定として活用できます。

ただし、すべての環境で自動判定だけに頼るのではなく、必要に応じて「Reopen with Encoding」で文字コードを明示的に指定するほうが確実です。

ファイルの種類ごとにShift-JISを設定する方法

VSCodeでは、すべてのファイルではなく、特定の言語やファイル形式だけ文字コードを変更することもできます。

バッチファイルだけShift-JISにする

たとえば、WindowsのバッチファイルだけShift-JISで扱いたい場合は、次のように設定できます。

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

これにより、バッチファイルに対してShift-JISの設定を適用できます。

「Web系のファイルはUTF-8、古いバッチファイルだけShift-JIS」といった使い分けをしたい場合に便利です。

Shift-JISにしても文字化けする場合の原因

Shift-JISを指定したにもかかわらず文字化けする場合は、別の原因が考えられます。

実際にはShift-JISではない

「Shift-JISのファイルだと思っていたが、実際にはUTF-8など別の文字コードだった」というケースがあります。

その場合は「Reopen with Encoding」から別の文字コードを試し、正常に表示できる文字コードを確認します。

誤った文字コードで保存されている

以前に文字化けした状態で保存されている場合、文字コードを切り替えるだけでは元に戻らないことがあります。

Gitなどでバージョン管理している場合は、正常だった過去のファイルとの差分を確認する方法もあります。

Shift-JISで表現できない文字が含まれている

Shift-JISでは、Unicodeで利用できるすべての文字を表現できません。

そのため、UTF-8からShift-JISへ変換すると、一部の文字を正常に保存できない可能性があります。

特に注意したいのは、

  • 絵文字
  • 一部の特殊記号
  • Unicode特有の文字
  • 一部の異体字

などです。

Shift-JISへ変換する場合は、保存後に内容が正常か確認すると安全です。

CSVをShift-JISで保存する方法

業務システムなどへCSVを取り込む場合、文字コードとしてShift-JISが指定されることがあります。

その場合もVSCodeで変換できます。

UTF-8のCSVをShift-JISへ変換する

手順は次のとおりです。

  1. CSVファイルをVSCodeで開く
  2. 右下の「UTF-8」などをクリックする
  3. 「エンコード付きで保存」を選択する
  4. 「Japanese (Shift JIS)」を選択する
  5. 保存する

これでCSVファイルをShift-JISとして保存できます。

ただし、「Excelで使用するCSVだから必ずShift-JISにしなければならない」というわけではありません。

現在ではUTF-8に対応しているソフトウェアも多いため、CSVの文字コードは読み込み先のシステムや仕様に合わせることが重要です。

Shift-JISとUTF-8はどちらを使うべきか

新しくファイルやシステムを作成する場合は、特別な理由がなければUTF-8を選択するのが一般的です。

Shift-JISが適しているケース

Shift-JISを使用する代表的なケースとしては、次のようなものがあります。

  • 既存システムがShift-JISを前提としている
  • 古いWindowsアプリケーションとの互換性が必要
  • 既存プロジェクトがShift-JISで統一されている
  • CSVの取り込み仕様としてShift-JISが指定されている
  • レガシーシステムとのデータ連携が必要

このような場合は、VSCodeでもShift-JISを利用する必要があります。

新規開発ではUTF-8が基本

HTML、CSS、JavaScript、PHP、Pythonなどを利用した新規開発では、基本的にはUTF-8を使用するほうが扱いやすいでしょう。

UTF-8は多くの言語や文字を扱うことができ、現在のWebサービスや開発ツールとの互換性にも優れています。

そのため、

「基本はUTF-8、必要な場合のみShift-JIS」

という使い分けがおすすめです。

VSCodeでShift-JISを使う場合のおすすめ設定

既存のShift-JISプロジェクトをVSCodeで編集する場合は、ワークスペース単位で設定する方法が使いやすいでしょう。

Shift-JISで統一されたプロジェクトの場合

「.vscode/settings.json」に次のように設定します。

{
    "files.encoding": "shiftjis"
}

これにより、そのワークスペースで使用する既定エンコーディングをShift-JISにできます。

UTF-8とShift-JISが混在している場合

複数の文字コードが混在する環境では、次の設定を利用する方法があります。

{
    "files.autoGuessEncoding": true
}

ただし、自動判定が必ず正しいとは限りません。

文字化けした場合は、ステータスバーから「Reopen with Encoding」を使用して、正しい文字コードを指定しましょう。

VSCodeで文字コードをShift-JISにする際の注意点

VSCodeでは比較的簡単にShift-JISを扱えますが、文字コードの変更はファイル内容に影響する可能性があります。

特に、UTF-8からShift-JISへ変換する場合は、Shift-JISで表現できない文字が含まれていないか確認することが重要です。

また、文字化けしているファイルを見つけた場合は、いきなり保存するのではなく、「Reopen with Encoding」で正しい文字コードを確認してから編集するようにしましょう。

まとめ

VSCodeで文字コードをShift-JISにする場合は、目的によって操作方法が異なります。

UTF-8などのファイルをShift-JISへ変換したい場合は、

「文字コード表示 → Save with Encoding → Japanese (Shift JIS)」

を選択します。

一方、Shift-JISのファイルが文字化けしている場合は、

「文字コード表示 → Reopen with Encoding → Japanese (Shift JIS)」

を選択して開き直します。

また、特定のワークスペースでShift-JISを既定の文字コードとして使用する場合は、「.vscode/settings.json」に、

{
    "files.encoding": "shiftjis"
}

と設定できます。

ただし、この設定だけで既存のUTF-8ファイルが自動的にShift-JISへ変換されるわけではありません。

文字コードを変更する際は、「読み込み方法を変更するのか」「ファイルそのものを変換するのか」を区別することが重要です。

新規開発では基本的にUTF-8を使用し、既存システムとの互換性などで必要な場合にShift-JISを利用すると、文字化けなどのトラブルを減らしやすくなります。

以上、VSCodeで文字コードをShift-JISにする方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次