VS Codeでエンコーディングを変更、自動判別するにはVisual Studio Code TIPS

エンコーディングを指定してファイルを開き直したり保存したりする方法、既定のエンコーディングを変更する方法、自動判別する方法を解説。

» 2018年06月01日 05時00分 公開
[かわさきしんじInsider.NET編集部]
「Visual Studio Code TIPS」のインデックス

連載「Visual Studio Code TIPS」

 Visual Studio Code(以下、VS Code)のエンコーディングはデフォルトでUTF-8となっている。そのため、シフトJISなど、異なるエンコーディングで保存されているファイルを開こうとすると文字化けが発生する。本稿ではエンコーディングを指定して開き直す方法や、エンコーディングを指定してファイルを保存する方法、デフォルトのエンコーディングを変更する方法、エンコーディングをファイルオープン時に自動判別する方法を紹介する。ちなみに筆者のオススメは表の一番下にある「自動判別」だ。

  操作
エンコーディングを指定して開き直す ステータスバーに表示されているエンコーディングをクリックしてから、エンコーディングを指定してファイルを開き直す
エンコーディングを指定してファイルを保存する ステータスバーに表示されているエンコーディングをクリックしてから、エンコーディングを指定してファイルを保存する
デフォルトのエンコーディングを変更する files.encoding項目を変更する
ファイルを開く際にエンコーディングを自動判別する files.autoGuessEncoding項目をtrueにする
エンコーディングを変更したり、自動判別したりする操作

エンコーディングを指定してファイルを開き直す

 VS CodeではデフォルトのエンコーディングをUTF-8としている。そのため、他のエンコーディングを使用しているファイルを開こうとすると(以下で説明する方法で自動判別を有効にしていない限りは)、文字化けが発生する。例えば、以下はEUC、シフトJIS、UTF-8でエンコーディングしているファイルを開いている様子だ。

EUC、シフトJIS、UTF-8で保存されているファイルを開いているところ EUC、シフトJIS、UTF-8で保存されているファイルを開いているところ

 最初の2つはEUCとシフトJISでエンコーディングされているので、文字化けしている。最後の1つはUTF-8でエンコーディングされているので、正しく文字が表示されている。

 ここで、ステータスバーの右側に注目すると、エンコーディングが全て「UTF-8」になっていることが分かる。ファイルのエンコーディングを指定して開き直すには、この部分をクリックすればよい。すると、VS Codeのウィンドウ上部に[アクションの選択]として[エンコード付きで再度開く]と[エンコード付きで保存]の2つのコマンドが表示される。そこで[エンコード付きで再度開く]を選び、エンコーディングを指定すれば、そのエンコーディングでファイルが再度開かれる。

エンコーディングをクリック(赤枠内。ここでは[UTF-8]と表示されている)
エンコーディングをクリック(赤枠内。ここでは[UTF-8]と表示されている)
[エンコード付きで再度開く]を選択
[エンコード付きで再度開く]を選択
エンコーディングを指定する
エンコーディングを指定する
文字化けが解消された
文字化けが解消された

エンコーディングを指定して、ファイルを開き直しているところ


 エンコーディングを指定する際には、非常に多くの候補が表示されるので、上の画像で行っているように「japa」などと入力して、対象を絞り込むのがよいだろう。

エンコーディングを指定してファイルを保存する

 ファイルが正しく開かれている状態で、上の画像に示した[エンコード付きで保存]を選択すると、エンコーディングを変更して、そのファイルを保存できる。以下に例を示す。これはUTF-8でエンコーディングされたファイルを、シフトJISでエンコーディングして保存しているところだ。

エンコーディングを指定してファイルを保存しているところ エンコーディングを指定してファイルを保存しているところ

 上の画像では、エンコーディングをシフトJISにした後、ファイルを一度閉じてから、開き直している。このときには、エンコーディングはUTF-8であるものとして、ファイルが開かれるために文字化けしている。

 [ファイル]メニューには「エンコーディングを指定してファイルを保存」といった項目はないので、エンコーディングを変えてファイルを保存するときにはこの方法を使うようにしよう(そんな機会があるかどうかはともかく)。

デフォルトのエンコーディングを変更する

 デフォルトのエンコーディングはユーザー設定/ワークスペース設定で上書き可能だ。これには、files.encoding項目でエンコーディングを指定する。設定するには、[ファイル]メニュー(macOSでは[Code]メニュー)の[基本設定]−[設定]を選択して、[User Settings]タブをエディタに表示して、検索ボックスに「encoding」などと入力し、files.encoding項目を検索し、その値を変更すればよい(もちろん、settings.jsonファイルに直書きしても構わない)。

ワークスペース設定のfiles.encoding項目を設定しているところ ワークスペース設定のfiles.encoding項目を設定しているところ

 項目の左には鉛筆アイコンが表示され、これをクリックすると、候補が山ほど表示されるのでビックリしないようにしよう。簡単なのは、何か適当なものを選択してから、settings.jsonファイルで望みのエンコーディングを指定することだ。上の画像を見れば分かる通り、IntelliSenseも有効だ。

 特定のプロジェクトでは、いつもとは異なるエンコーディングのファイルを扱うという場合には、ワークスペース設定で上書きをしておくと便利かもしれない。あるいは言語ごとの設定も可能だ。

ファイルオープン時にエンコーディングを自動判別する

 ファイルを開くときに、自動でエンコーディングを判断させる方法もある。これには、files.autoGuessEncoding項目の値をtrueにする(falseを指定すれば、自動判別が無効になる。デフォルト値はfalse)。設定方法は上と同様で、検索ボックスに「encoding」「autoguess」などと入力して、この項目の値をtrueにするだけだ。

files.autoGuessEncoding項目を設定しているところ files.autoGuessEncoding項目を設定しているところ

 files.encoding項目とfiles.autoGuessEncoding項目を両方設定している場合、エンコーディングの自動判別が行われ、新規にファイルを作成する際にはfiles.encoding項目で指定したエンコーディングが使用されるようになる。ただし、筆者が試したところでは、files.encoding項目の値に"shiftjis"あるいは"eucjp"を指定していると、UTF-8でエンコーディングされているファイルの自動判別に失敗することがあるようなので注意しよう。

「Visual Studio Code TIPS」のインデックス

Visual Studio Code TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。