プログラミングをしていると、扱うファイルの種類によって使用したい文字エンコードが異なることがあります。
- HTML / JavaScript:UTF-8を指定して開く
- CSV:Shift_JISを指定して開く
- ログファイル:特定の文字コードを指定して開く
上記の内容は、VSCodeの設定ファイルである「settings.json」を使えば実現できます。
この記事では、「VSCodeで言語ごとに文字エンコードを指定する方法」をわかりやすく解説します。
VSCodeで言語ごとに文字エンコードを指定する方法
VSCodeでは、言語ごとに指定した文字エンコード(文字エンコーディング)で開くことができます。
これを利用すると、次のようなルールを設定できます。
.csvはShift_JISを指定して開く.htmlはUTF-8を指定して開く
設定方法ですが、VSCodeの設定ファイルであるsettings.jsonに以下の形式で文字エンコードを指定します。
"[言語ID]": {
"files.encoding": "files.encodingの値"
}例えば、csvファイルをShift_JISで開くようにするには、以下のように記述します。
"[csv]": {
"files.encoding": "shiftjis"
}settings.jsonの開き方
Windowsの場合はCtrl + ,、Macの場合はCmd + ,で設定画面を開き、右上のファイルアイコンをクリックすると、settings.jsonを開くことができます。

言語IDの調べ方
VSCodeで「言語ごとに文字エンコードを指定する」には、まずその言語の「言語ID」を知る必要があります。
言語IDは"csv"や"html"のような識別子で、settings.jsonに書くときに必ず必要になります。
言語IDの調べ方についてこれから説明します。
まず、コマンドパレットを開きます。Windowsの場合はCtrl+Shift+P、macOSの場合は、Command+Shift+Pを押すと、コマンドパレットを開くことができます。
コマンドパレットを開いたら、検索欄にlangと入力してください。候補がいくつか表示されますが、この中で「基本設定:言語固有の設定を構成します...」を選択します。

すると、以下に示すような選択候補が現れます。

この括弧の中に書いてあるのが「言語ID」です。例えば、C++の言語IDはcppになります。
files.encodingで指定できる値
VSCodeのfiles.encodingでは、多くの文字エンコードを指定できます。指定できる文字エンコードの一覧を以下に示します。
| 文字エンコード | files.encodingの値 |
|---|---|
| UTF-8 (BOM なし) | utf8 |
| UTF-8 (BOM あり) | utf8bom |
| UTF-16 LE | utf16le |
| UTF-16 BE | utf16be |
| Western (Windows 1252) | windows1252 |
| Western (ISO 8859-1) | iso88591 |
| Western (ISO 8859-3) | iso88593 |
| Western (ISO 8859-15) | iso885915 |
| Western (Mac Roman) | macroman |
| DOS (CP 437) | cp437 |
| Arabic (Windows 1256) | windows1256 |
| Arabic (ISO 8859-6) | iso88596 |
| Baltic (Windows 1257) | windows1257 |
| Baltic (ISO 8859-4) | iso88594 |
| Celtic (ISO 8859-14) | iso885914 |
| Central European (Windows 1250) | windows1250 |
| Central European (ISO 8859-2) | iso88592 |
| Central European (CP 852) | cp852 |
| Cyrillic (Windows 1251) | windows1251 |
| Cyrillic (CP 866) | cp866 |
| Cyrillic (CP 1125) | cp1125 |
| Cyrillic (ISO 8859-5) | iso88595 |
| Cyrillic (KOI8-R) | koi8r |
| Cyrillic (KOI8-U) | koi8u |
| Estonian (ISO 8859-13) | iso885913 |
| Greek (Windows 1253) | windows1253 |
| Greek (ISO 8859-7) | iso88597 |
| Hebrew (Windows 1255) | windows1255 |
| Hebrew (ISO 8859-8) | iso88598 |
| Nordic (ISO 8859-10) | iso885910 |
| Romanian (ISO 8859-16) | iso885916 |
| Turkish (Windows 1254) | windows1254 |
| Turkish (ISO 8859-9) | iso88599 |
| Vietnamese (Windows 1258) | windows1258 |
| Simplified Chinese (GBK) | gbk |
| Simplified Chinese (GB18030) | gb18030 |
| Traditional Chinese (Big5) | cp950 |
| Traditional Chinese (Big5-HKSCS) | big5hkscs |
| Japanese (Shift JIS) | shiftjis |
| Japanese (EUC-JP) | eucjp |
| Korean (EUC-KR) | euckr |
| Thai (Windows 874) | windows874 |
| Latin/Thai (ISO 8859-11) | iso885911 |
| Cyrillic (KOI8-RU) | koi8ru |
| Tajik (KOI8-T) | koi8t |
| Simplified Chinese (GB 2312) | gb2312 |
| Nordic DOS (CP 865) | cp865 |
| Western European DOS (CP 850) | cp850 |
本記事のまとめ
VSCodeでは言語ごとに文字エンコードを自動で切り替える設定ができます。
- HTML / JavaScriptはUTF-8
- CSVはShift_JIS
- ログファイルは好みの文字コード
といったルールをsettings.jsonに書くだけで簡単に実現できます。
特に、CSVや古いシステムのファイルを扱うときは、毎回手動でエンコードを切り替える手間がなくなるため便利です。VSCodeをよく使う方は、ぜひ今回紹介した方法で作業環境を快適にしてみてください。
お読みいただきありがとうございました。