Visual Studio Code(VSCode)は現代のエンジニアに最も広く使われているテキストエディタの一つですが、デフォルト設定ではShift_JISファイルを開くと文字化けすることがあります。
日本語を扱う開発現場では、ExcelのCSVファイルや古いシステムのデータファイルがShift_JIS形式で提供されることも多く、VSCodeでこれらを正しく扱えるようにする知識は非常に重要です。
「VSCodeでShift_JISを開いたら文字化けした」「文字コードをUTF-8に変換したい」「Shift_JISをデフォルトにしたい」など、さまざまな疑問に対応する内容を本記事では解説していきます。
VSCodeでのエンコード指定方法・デフォルト設定の変更・自動検出機能・文字化け解決・便利な拡張機能まで、実践的な操作手順とともに丁寧に説明します。
VSCodeでの日本語ファイル管理を完全にマスターしたい方は、ぜひ最後までお読みください。
VSCodeでShift_JISファイルを開くと文字化けする理由
それではまず、VSCodeでShift_JISファイルを開いたときに文字化けが起きる理由と基本的な仕組みについて解説していきます。
VSCodeはデフォルトでUTF-8を使用してファイルを読み込みます。
Shift_JISで保存されたファイルをVSCodeが自動検出せずにUTF-8として読み込もうとすると、バイト列の解釈がずれて文字化けが発生します。
「あいう」というShift_JISのテキストは「0x82A0 0x82A2 0x82A4」というバイト列ですが、これをUTF-8として解釈しようとすると無効なバイト列として処理され、「縺ゅ>縺・」のような文字化けが発生します。
VSCodeのデフォルト文字コード設定
VSCodeの文字コード関連のデフォルト設定を確認しておきましょう。
| 設定項目 | デフォルト値 | 意味 |
|---|---|---|
| files.encoding | utf8 | ファイルの読み書きに使う文字コード |
| files.autoGuessEncoding | false | 文字コードの自動検出(デフォルトは無効) |
| files.encodingPerLanguage | なし | 言語ごとの文字コード設定 |
デフォルトではUTF-8が使われ、文字コードの自動検出は無効になっています。
そのためShift_JISのファイルを開くと自動的に文字化けが発生します。
この設定を変更することでShift_JISファイルを正しく扱えるようになります。
文字化けしているかどうかの確認方法
VSCodeでファイルを開いたときに文字化けしているかどうかは、以下の方法で確認できます。
VSCodeでの文字化け確認方法
①ウィンドウ右下のステータスバーの文字コード表示を確認する
→「UTF-8」と表示されているがShift_JISファイルを開いた場合は文字化けの可能性
②日本語テキストが「縺ゅ>縺・」のような記号列に見える場合は文字化けしている
③ファイルの先頭がBOMで始まる場合はBOM付きUTF-8の可能性がある
ステータスバーに表示される文字コード表示は「VSCodeが認識している文字コード」であり、実際のファイルの文字コードと一致しない場合に文字化けが発生します。
VSCodeでShift_JISファイルを正しく開く方法
続いては、VSCodeでShift_JISファイルを文字化けなく正しく開く方法を確認していきます。
最もよく使う基本操作をまず習得しましょう。
文字コードを指定してファイルを開き直す
既に文字化けして開いているファイルを正しく表示するには「エンコード付きで再度開く」操作を行います。
「エンコード付きで再度開く」の手順
ステップ1:文字化けしているファイルをVSCodeで開く
ステップ2:ウィンドウ右下のステータスバーの文字コード名(例:UTF-8)をクリック
ステップ3:上部に表示されるメニューから「エンコード付きで再度開く」を選択
ステップ4:「Shift JIS」または「Japanese (Shift JIS)」を検索して選択
ステップ5:日本語が正しく表示されることを確認する
「エンコード付きで再度開く」はファイルを保存せず、表示のみを変更する操作であるため、誤ってファイルを書き換えるリスクがない安全な操作です。
この操作後にファイルを保存すると、その時点のエンコーディング(Shift_JIS)で保存されます。
コマンドパレットを使う方法
ステータスバーのクリックがうまくいかない場合は、コマンドパレットから操作することもできます。
コマンドパレットからの文字コード変更
ステップ1:Ctrl+Shift+P(Mac:Cmd+Shift+P)でコマンドパレットを開く
ステップ2:「encoding」または「エンコード」と入力する
ステップ3:「ファイルをエンコード付きで再度開く」を選択する
ステップ4:「Shift JIS」を選択する
コマンドパレットは「VSCodeのほぼすべての機能にアクセスできる万能メニュー」であり、ショートカットキーを覚えておくと作業効率が大幅に向上します。
Shift_JISファイルをUTF-8に変換して保存する
Shift_JISのファイルをVSCodeでUTF-8に変換して保存する手順は以下の通りです。
VSCodeでのShift_JIS→UTF-8変換・保存手順
ステップ1:Shift_JISファイルを「エンコード付きで再度開く」→「Shift JIS」で正しく表示させる
ステップ2:右下の文字コード表示をクリックする
ステップ3:「エンコード付きで保存」を選択する
ステップ4:「UTF-8」を選択する
ステップ5:Ctrl+Sで保存して完了
「エンコード付きで再度開く」と「エンコード付きで保存」は全く別の操作であるため、混同しないように注意が必要です。
「再度開く」は表示の変更、「保存」はファイルの文字コードの変更を意味します。
VSCodeのShift_JIS関連設定を変更する方法
続いては、VSCodeの設定ファイルを変更することでShift_JISをより便利に扱う方法を確認していきます。
設定の変更は一度行えば以降のすべてのファイルに自動的に適用されるため、日常的にShift_JISを扱う場合は特に重要です。
文字コードの自動検出を有効にする
VSCodeには文字コードを自動判定する機能があり、デフォルトでは無効になっています。
これを有効にすることで、Shift_JISファイルを開いたときに自動的に正しい文字コードで表示されるようになります。
自動検出の有効化手順
方法1(GUIから設定):
①Ctrl+,(Mac:Cmd+,)で設定を開く
②検索バーに「autoGuessEncoding」と入力
③「Files: Auto Guess Encoding」にチェックを入れる
方法2(settings.jsonに直接記述):
{
”files.autoGuessEncoding”: true
}
自動検出を有効にすると多くのShift_JISファイルが自動的に正しく表示されるようになるが、判定精度は100%ではないため重要なファイルは手動確認を推奨します。
短いテキストファイルや英数字のみのファイルは自動検出の精度が下がることがあります。
デフォルト文字コードをShift_JISに変更する
Shift_JISファイルを主に扱う環境では、デフォルト文字コードをShift_JISに変更しておくと便利です。
デフォルト文字コードをShift_JISに変更する設定
settings.jsonに以下を追加する:
{
”files.encoding”: “shiftjis”
}
または特定のファイルタイプだけShift_JISにする場合:
{
”[plaintext]”: {
”files.encoding”: “shiftjis”
},
”[csv]”: {
”files.encoding”: “shiftjis”
}
}
ただし、デフォルトをShift_JISに変更するとUTF-8のファイルを開いたときに逆に文字化けすることがあるため、状況に応じて設定を使い分けることをおすすめします。
多くのエンジニアにとってはデフォルトUTF-8のまま、Shift_JISファイルのみ手動で指定する方法がバランスが良いでしょう。
ワークスペース別の文字コード設定
VSCodeではグローバル設定とワークスペース(プロジェクト)ごとの設定を別々に管理できます。
| 設定の種類 | 適用範囲 | 設定ファイルの場所 |
|---|---|---|
| ユーザー設定 | VSCode全体(すべてのプロジェクト) | ~/.config/Code/User/settings.json |
| ワークスペース設定 | 特定のプロジェクトのみ | プロジェクトルートの.vscode/settings.json |
| フォルダ設定 | 特定のフォルダ以下のみ | フォルダ内の.vscode/settings.json |
Shift_JISを使う旧システムのプロジェクトに対してのみワークスペース設定でShift_JISを指定し、他のプロジェクトはUTF-8のままという使い分けが最もスマートな方法です。
.vscode/settings.jsonをGitリポジトリに含めることで、チームメンバー全員が同じ文字コード設定でVSCodeを使えるようになります。
VSCodeのShift_JIS対応拡張機能
続いては、VSCodeのShift_JIS対応を強化する拡張機能を確認していきます。
標準機能では対応しにくい場面を補う拡張機能を活用することで、作業効率が大幅に向上します。
Japanese Language Support系の拡張機能
VSCodeのマーケットプレイスには日本語・文字コード関連の拡張機能が複数公開されています。
| 拡張機能名 | 主な機能 | 特徴 |
|---|---|---|
| Japanese Language Pack for VS Code | VSCodeのUI日本語化 | マイクロソフト公式・文字コード設定には直接関係しない |
| Auto Encoding | 文字コード自動検出の強化 | 標準より精度の高い自動検出 |
| Encode Decode | 文字列のエンコード・デコード | 選択した文字列の文字コード変換 |
拡張機能のインストールはVSCodeのサイドバーの「拡張機能」アイコンから行えます。
検索バーに機能名を入力してインストールするだけで使えるようになります。
EditorConfigを使った文字コード統一
チーム開発では「EditorConfig」という設定ファイルを使うことで、エディタに関わらず文字コードを統一できます。
.editorconfig ファイルの例
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
[*.csv]
charset = shift_jis (特定ファイルのみShift_JISを指定する場合)
EditorConfigはVSCode・JetBrains系・Vimなど多くのエディタで対応しており、チーム全体の文字コード設定を一元管理できる非常に便利な仕組みです。
VSCodeでEditorConfigを有効にするには「EditorConfig for VS Code」拡張機能のインストールが必要です。
CSV・TSVファイルの文字コード処理
CSVファイルを頻繁に扱う場合は、CSV専用の拡張機能を活用すると便利です。
「Rainbow CSV」拡張機能の活用
VSCodeでCSVを扱う際は「Rainbow CSV」という拡張機能が非常に人気です。
CSVの各列を異なる色で表示し、視認性を大幅に向上させます。
Shift_JISのCSVも「エンコード付きで再度開く」でShift_JISを指定した後に使用できます。
SQLライクなクエリでCSVデータを絞り込む機能もあり、大量データの確認作業に役立ちます。
CSV専用エディタ(TablePlus・DB Browser for SQLiteなど)とVSCodeを組み合わせると、Shift_JISのCSVデータをより効率的に確認・編集できます。
VSCodeでのShift_JIS関連トラブルと解決法
続いては、VSCodeでShift_JISを扱う際のよくあるトラブルとその解決法を確認していきます。
事前に対処法を知っておくことで、トラブル発生時も素早く解決できます。
よくあるトラブル一覧と解決策
| トラブル | 原因 | 解決法 |
|---|---|---|
| Shift_JISで開いても文字化けする | ファイルがShift_JISでない可能性 | nkf –guessで文字コードを確認する |
| 保存後に文字化けが発生した | 「エンコード付きで保存」を使わず保存した | バックアップから復元し正しい手順で再保存 |
| 「Shift JIS」の選択肢が表示されない | スペルが違う・検索語が不正確 | 「shift」「jis」「japanese」で検索する |
| 自動検出が誤動作する | 短いテキストや英数字のみのファイル | autoGuessEncodingをfalseにして手動指定 |
| Git管理下でエンコード設定が変わる | .gitattributesの設定が干渉 | .gitattributesのtext設定を確認・調整する |
「保存後に文字化けが発生した」ケースは、Shift_JISで正しく表示していたファイルを「エンコード付きで保存」を使わずに通常保存してUTF-8で上書きしてしまったことが原因であることが多いです。
Gitと文字コードの関係
GitでShift_JISのファイルを管理する場合、改行コードの自動変換設定が文字コードに影響することがあります。
.gitattributesでの文字コード管理
# UTF-8ファイルの改行コード設定
*.txt text eol=lf
# Shift_JISのCSVは自動変換を無効化
*.csv -text
または
*.csv binary (バイナリとして扱い、一切の変換を無効化)
Gitのeol(行末文字)自動変換がShift_JISの2バイト文字の後続バイトに干渉して文字化けが起きることがあります。
Shift_JISのCSVをGit管理する場合は.gitattributesで`-text`または`binary`を指定し、Gitによる自動変換を無効化することが最善策です。
まとめ
本記事では、VSCodeでShift_JISファイルを正しく扱うための方法として、文字化けが起きる理由・エンコード指定での開き方・UTF-8への変換保存・設定ファイルの変更・便利な拡張機能・よくあるトラブルの解決法まで詳しく解説しました。
VSCodeでShift_JISを扱う基本操作は「ステータスバーの文字コード表示をクリック→エンコード付きで再度開く→Shift_JISを選択」というシンプルな手順です。
日常的にShift_JISを扱う場合はautoGuessEncodingをtrueにするか、ワークスペース設定でfiles.encodingをshiftjisに設定しておくと作業効率が向上します。
ExcelとのCSV連携ではBOM付きUTF-8(UTF-8 with BOM)で保存する方法が最もトラブルの少ないアプローチです。
VSCodeの文字コード設定をマスターすることで、Shift_JISファイルを含む日本語環境での開発作業がより快適になるでしょう。