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で保存する場合は、次の手順で操作します。
- Shift-JISに変換したいファイルをVSCodeで開く
- 画面右下に表示されている「UTF-8」などの文字コードをクリックする
- 「エンコード付きで保存」を選択する
- 「Japanese (Shift JIS)」を選択する
- ファイルを保存する
英語表示の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として開き直す
文字化けしたファイルは、次の手順で開き直します。
- 文字化けしているファイルをVSCodeで開く
- 画面右下の「UTF-8」などの文字コード表示をクリックする
- 「エンコード付きで再度開く」を選択する
- 「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でファイルを読み書きするときに使用する既定の文字コードを指定する設定です。
参考サイト
プロジェクトごとに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へ変換する
手順は次のとおりです。
- CSVファイルをVSCodeで開く
- 右下の「UTF-8」などをクリックする
- 「エンコード付きで保存」を選択する
- 「Japanese (Shift JIS)」を選択する
- 保存する
これで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にする方法についてでした。
最後までお読みいただき、ありがとうございました。









