エンコーディングを指定してファイルを開き直したり保存したりする方法、既定のエンコーディングを変更する方法、自動判別する方法を解説。
Visual Studio Code(以下、VS Code)のエンコーディングはデフォルトでUTF-8となっている。そのため、シフトJISなど、異なるエンコーディングで保存されているファイルを開こうとすると文字化けが発生する。本稿ではエンコーディングを指定して開き直す方法や、エンコーディングを指定してファイルを保存する方法、デフォルトのエンコーディングを変更する方法、エンコーディングをファイルオープン時に自動判別する方法を紹介する。ちなみに筆者のオススメは表の一番下にある「自動判別」だ。
操作 | |
---|---|
エンコーディングを指定して開き直す | ステータスバーに表示されているエンコーディングをクリックしてから、エンコーディングを指定してファイルを開き直す |
エンコーディングを指定してファイルを保存する | ステータスバーに表示されているエンコーディングをクリックしてから、エンコーディングを指定してファイルを保存する |
デフォルトのエンコーディングを変更する | files.encoding項目を変更する |
ファイルを開く際にエンコーディングを自動判別する | files.autoGuessEncoding項目をtrueにする |
エンコーディングを変更したり、自動判別したりする操作 |
VS CodeではデフォルトのエンコーディングをUTF-8としている。そのため、他のエンコーディングを使用しているファイルを開こうとすると(以下で説明する方法で自動判別を有効にしていない限りは)、文字化けが発生する。例えば、以下はEUC、シフトJIS、UTF-8でエンコーディングしているファイルを開いている様子だ。
最初の2つはEUCとシフトJISでエンコーディングされているので、文字化けしている。最後の1つはUTF-8でエンコーディングされているので、正しく文字が表示されている。
ここで、ステータスバーの右側に注目すると、エンコーディングが全て「UTF-8」になっていることが分かる。ファイルのエンコーディングを指定して開き直すには、この部分をクリックすればよい。すると、VS Codeのウィンドウ上部に[アクションの選択]として[エンコード付きで再度開く]と[エンコード付きで保存]の2つのコマンドが表示される。そこで[エンコード付きで再度開く]を選び、エンコーディングを指定すれば、そのエンコーディングでファイルが再度開かれる。
エンコーディングを指定して、ファイルを開き直しているところ
エンコーディングを指定する際には、非常に多くの候補が表示されるので、上の画像で行っているように「japa」などと入力して、対象を絞り込むのがよいだろう。
ファイルが正しく開かれている状態で、上の画像に示した[エンコード付きで保存]を選択すると、エンコーディングを変更して、そのファイルを保存できる。以下に例を示す。これはUTF-8でエンコーディングされたファイルを、シフトJISでエンコーディングして保存しているところだ。
上の画像では、エンコーディングをシフトJISにした後、ファイルを一度閉じてから、開き直している。このときには、エンコーディングはUTF-8であるものとして、ファイルが開かれるために文字化けしている。
[ファイル]メニューには「エンコーディングを指定してファイルを保存」といった項目はないので、エンコーディングを変えてファイルを保存するときにはこの方法を使うようにしよう(そんな機会があるかどうかはともかく)。
デフォルトのエンコーディングはユーザー設定/ワークスペース設定で上書き可能だ。これには、files.encoding項目でエンコーディングを指定する。設定するには、[ファイル]メニュー(macOSでは[Code]メニュー)の[基本設定]−[設定]を選択して、[User Settings]タブをエディタに表示して、検索ボックスに「encoding」などと入力し、files.encoding項目を検索し、その値を変更すればよい(もちろん、settings.jsonファイルに直書きしても構わない)。
項目の左には鉛筆アイコンが表示され、これをクリックすると、候補が山ほど表示されるのでビックリしないようにしよう。簡単なのは、何か適当なものを選択してから、settings.jsonファイルで望みのエンコーディングを指定することだ。上の画像を見れば分かる通り、IntelliSenseも有効だ。
特定のプロジェクトでは、いつもとは異なるエンコーディングのファイルを扱うという場合には、ワークスペース設定で上書きをしておくと便利かもしれない。あるいは言語ごとの設定も可能だ。
ファイルを開くときに、自動でエンコーディングを判断させる方法もある。これには、files.autoGuessEncoding項目の値をtrueにする(falseを指定すれば、自動判別が無効になる。デフォルト値はfalse)。設定方法は上と同様で、検索ボックスに「encoding」「autoguess」などと入力して、この項目の値をtrueにするだけだ。
files.encoding項目とfiles.autoGuessEncoding項目を両方設定している場合、エンコーディングの自動判別が行われ、新規にファイルを作成する際にはfiles.encoding項目で指定したエンコーディングが使用されるようになる。ただし、筆者が試したところでは、files.encoding項目の値に"shiftjis"あるいは"eucjp"を指定していると、UTF-8でエンコーディングされているファイルの自動判別に失敗することがあるようなので注意しよう。
Copyright© Digital Advantage Corp. All Rights Reserved.