VS Codeでファイルを開いたら、日本語が文字化けしていた…
こんな経験、ありませんか?
特にShift_JISやEUC-JPで保存された古いファイルを開くと、文字化けが発生してしまいます。
実は、VS Codeには文字コードを自動判定する機能があります。
この機能を有効にすれば、ファイルごとに適切な文字コードで開いてくれるので、文字化けを大幅に減らせます。
この記事では、VS Codeの文字コード自動判定機能について、設定方法から注意点まで詳しく解説します。
文字化けに悩んでいる方は、ぜひ参考にしてください!
VS Codeのデフォルト文字コード

まず、VS Codeの基本的な文字コード設定について理解しましょう。
デフォルトはUTF-8
VS Codeは、デフォルトでUTF-8という文字コードを使用します。
UTF-8の特徴
- 世界中の文字を表現できる
- 現代のWebやプログラミングで標準的
- 英語、日本語、中国語、記号など、ほぼすべてに対応
ほとんどの新しいファイルはUTF-8で保存されているので、通常は問題ありません。
文字化けが起きる理由
UTF-8以外の文字コードで保存されたファイルを開くと、文字化けが発生します。
日本語でよく使われる文字コード
- Shift_JIS(シフトJIS):Windowsで昔から使われている
- EUC-JP:Linuxやサーバーで使われることが多い
- ISO-2022-JP:古いメールで使われていた
特に、古いプログラムのソースコードやバッチファイル、SQLファイルなどは、Shift_JISで保存されていることが多いです。
文字化けの例
UTF-8として開いたShift_JISファイル:
ã��ã��ã��ã��ã¯
本来は:
こんにちは
このように、まったく読めない状態になってしまいます。
文字コード自動判定機能とは
VS Codeの自動判定機能について説明します。
機能の概要
「Files: Auto Guess Encoding」という設定を有効にすると、VS Codeがファイルを開く際に自動的に文字コードを推測してくれます。
仕組み
- ファイルの内容を分析
- 「jschardet」というライブラリで判定
- 最も可能性が高い文字コードで開く
これで、UTF-8、Shift_JIS、EUC-JP、その他多くの文字コードを自動的に判別できます。
いつ使うべきか
以下のような状況で特に便利です。
使うべき場面
- 古いプロジェクトのメンテナンス
- 複数の文字コードが混在しているプロジェクト
- 他の人が作ったファイルを開く機会が多い
- バッチファイルやSQLファイルをよく扱う
- 外部から受け取ったファイルを開く
使わなくても良い場面
- 新しいプロジェクトのみ扱う
- すべてのファイルがUTF-8
- 文字コードが統一されている
注意点
完璧ではありません。
限界
- 100%正確に判定できるわけではない
- ファイルによっては誤判定する可能性がある
- 短いファイルや特殊な内容では判定が難しい
ただし、多くの場合は正しく判定してくれます。
設定方法:GUIから設定
最も簡単な設定方法を説明します。
手順1:設定画面を開く
Windows/Linux
- 画面左下の歯車アイコンをクリック
- 「設定」を選択
または:
- メニューバー:「ファイル」→「ユーザー設定」→「設定」
ショートカットキー
- Windows/Linux:
Ctrl + ,(カンマ) - Mac:
Cmd + ,(カンマ)
手順2:検索する
設定画面が開いたら:
- 上部の検索ボックスに「encoding」と入力
- または「auto guess」と入力
検索すると、関連する設定項目が表示されます。
手順3:チェックを入れる
「Files: Auto Guess Encoding」という項目を探します。
- この項目のチェックボックスをクリック
- チェックが入ればOK
これだけで設定完了です!
設定の確認
設定が有効になっているか確認するには:
- 検索ボックスに「auto guess」と入力
- 「Files: Auto Guess Encoding」にチェックが入っているか確認
設定方法:settings.jsonで設定
上級者向けの設定方法です。
settings.jsonとは
VS Codeの設定ファイルです。
JSON形式でより細かい設定ができます。
開き方
方法1:コマンドパレット
Ctrl + Shift + P(Mac:Cmd + Shift + P)- 「Preferences: Open User Settings (JSON)」と入力
- Enterを押す
方法2:設定画面から
- 設定画面を開く(
Ctrl + ,) - 右上の「設定(JSON)を開く」アイコンをクリック
基本設定
settings.jsonに以下を追加:
{
"files.autoGuessEncoding": true
}
これで自動判定が有効になります。
すべてのファイルで有効にする場合
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
files.encoding:デフォルトの文字コード(UTF-8)files.autoGuessEncoding:自動判定を有効化
言語別に設定する場合
特定のプログラミング言語だけ設定したい場合:
{
"files.autoGuessEncoding": true,
"[java]": {
"files.encoding": "eucjp"
},
"[html]": {
"files.autoGuessEncoding": true
},
"[markdown]": {
"files.autoGuessEncoding": true
}
}
設定の意味
- すべてのファイルで自動判定を有効
- Javaファイルは常にEUC-JP
- HTMLとMarkdownは自動判定
ワークスペース設定
プロジェクトごとに設定したい場合:
Ctrl + Shift + P- 「Preferences: Open Workspace Settings (JSON)」
- 同じように設定を追加
ワークスペース設定は、そのプロジェクトでのみ有効になります。
実際に試してみる
設定後の動作を確認しましょう。
UTF-8ファイルを開く
- UTF-8で保存されたファイルを開く
- 画面右下のステータスバーを確認
- 「UTF-8」と表示されていればOK
問題なく表示されているはずです。
Shift_JISファイルを開く
- Shift_JISで保存されたファイルを開く
- 画面右下を確認
- 「Shift JIS」または「Japanese (Shift JIS)」と表示される
自動判定が成功していれば、文字化けせずに表示されます。
既に開いているファイルの場合
設定を有効にする前に開いていたファイルは、文字化けしたままかもしれません。
対処法
- ファイルを一度閉じる
- もう一度開く
これで、自動判定が実行されます。
文字化けした場合の対処法

自動判定でもうまくいかない場合の方法です。
手動で文字コードを指定
手順
- 画面右下の文字コード表示(例:「UTF-8」)をクリック
- 「エンコード付きで再度開く」を選択
- 正しい文字コードを選択
主な選択肢
- UTF-8
- Japanese (Shift JIS)
- Japanese (EUC-JP)
- Western (Windows 1252)
- など、多数の文字コードから選択可能
正しい文字コードがわからない場合
いくつか試してみましょう。
日本語ファイルの場合
以下の順で試すと良いです:
- Japanese (Shift JIS)
- Japanese (EUC-JP)
- UTF-8
どれかで正しく表示されるはずです。
文字コードを変更して保存
文字化けしているファイルを正しい文字コードに変換したい場合:
注意:必ずバックアップを取ってから実行!
- 正しい文字コードでファイルを開く
- 画面右下の文字コードをクリック
- 「エンコード付きで保存」を選択
- UTF-8を選択
これで、UTF-8として保存し直せます。
重要な注意
- 元のファイルは上書きされます
- 必ずバックアップを取ってから実行
- チーム開発では、勝手に文字コードを変更しない
自動判定が失敗する場合
うまく判定できないケースと対処法です。
判定が難しいファイル
以下のような場合、誤判定しやすくなります。
判定が難しい例
- ファイルサイズが非常に小さい
- 英数字や記号だけのファイル
- 日本語が少ししか含まれていない
- 数字が大半を占めるデータファイル
これらは、文字コードの特徴が出にくいためです。
対処法1:手動で指定
自動判定に頼らず、最初から手動で文字コードを指定します。
ファイルを開く前に:
Ctrl + Shift + P- 「File: Reopen with Encoding」と入力
- 文字コードを選択
- ファイルを選択
対処法2:デフォルト文字コードを変更
特定のプロジェクトでShift_JISが多い場合:
settings.jsonに:
{
"files.encoding": "shiftjis",
"files.autoGuessEncoding": true
}
これで、判定に失敗した場合でもShift_JISとして開きます。
対処法3:拡張子別に設定
ファイルの種類で文字コードが決まっている場合:
{
"[bat]": {
"files.encoding": "shiftjis"
},
"[sql]": {
"files.encoding": "shiftjis"
}
}
バッチファイルとSQLファイルは常にShift_JISとして開きます。
よくある問題と解決方法
トラブルシューティングです。
問題1:設定したのに文字化けする
原因
- 既に開いているファイル
- 自動判定が失敗している
解決方法
- ファイルを閉じて再度開く
- それでもダメなら手動で文字コードを指定
問題2:毎回違う文字コードで開かれる
原因
- ファイルの内容が判定しづらい
- 判定の信頼度が低い
解決方法
言語別に文字コードを固定:
{
"[java]": {
"files.encoding": "eucjp"
}
}
問題3:検索で日本語が見つからない
原因
- 検索は「files.encoding」設定の文字コードで実行される
- 自動判定は検索に影響しない
解決方法
検索対象の文字コードを指定:
{
"files.encoding": "shiftjis"
}
または、ファイルを開いた状態で検索する(開いているファイルは正しい文字コードで検索される)。
問題4:設定が反映されない
原因
- VS Codeを再起動していない
- 設定の場所が間違っている
解決方法
- VS Codeを完全に閉じる
- もう一度起動する
- ユーザー設定とワークスペース設定を確認
高度な設定
さらに詳しい設定方法です。
テキスト検索での文字コード指定
検索機能で使う文字コードを指定:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true,
"search.searchOnType": false,
"[java]": {
"files.encoding": "eucjp"
}
}
これで:
- 通常はUTF-8
- Javaファイルの検索はEUC-JP
- ファイルを開く時は自動判定
信頼度の調整(上級者向け)
注意:これは非推奨の方法です
VS Codeのソースコードを直接編集する方法もありますが:
- アップデートで元に戻る
- サポート対象外
- 初心者にはおすすめしません
基本的には、デフォルトの設定で使うことを推奨します。
複数プロジェクトでの使い分け
プロジェクトAではShift_JIS、プロジェクトBではUTF-8の場合:
プロジェクトA.vscode/settings.jsonに:
{
"files.encoding": "shiftjis",
"files.autoGuessEncoding": true
}
プロジェクトB.vscode/settings.jsonに:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
ワークスペース設定はプロジェクトごとに管理されます。
おすすめの設定
実用的な設定例を紹介します。
基本的な設定
まずはこれだけでOK:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
日本語プロジェクト向け
Shift_JISが混在する可能性がある場合:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true,
"[bat]": {
"files.encoding": "shiftjis"
},
"[sql]": {
"files.encoding": "shiftjis"
}
}
レガシープロジェクト向け
古いプロジェクトで、ほとんどShift_JISの場合:
{
"files.encoding": "shiftjis",
"files.autoGuessEncoding": true
}
これで、デフォルトはShift_JIS、UTF-8も自動判定できます。
多言語プロジェクト向け
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true,
"[java]": {
"files.encoding": "eucjp",
"files.autoGuessEncoding": true
},
"[html]": {
"files.autoGuessEncoding": true
},
"[css]": {
"files.autoGuessEncoding": true
}
}
よくある質問
Q&Aです。
Q1. 自動判定の精度はどのくらい?
A. 多くの場合、正しく判定できます。
ただし:
- 短いファイル:判定が難しい
- 英数字のみ:UTF-8と区別できない
- 特殊な文字コード:対応していない場合がある
大部分のファイルでは問題なく動作します。
Q2. パフォーマンスへの影響は?
A. ほとんどありません。
自動判定は:
- ファイルを開く時だけ実行される
- 最初の512バイトのみを分析
- 一瞬で完了
体感できるほどの遅延はありません。
Q3. すべての文字コードに対応している?
A. 主要な文字コードには対応しています。
対応している主な文字コード
- UTF-8、UTF-16、UTF-32
- Shift_JIS、EUC-JP
- ISO-2022-JP
- Windows-1252(西ヨーロッパ)
- GBK(中国語)
- その他多数
レアな文字コードは対応していない場合があります。
Q4. デフォルトで有効にならないのはなぜ?
A. 誤判定のリスクがあるためです。
- 完璧ではない
- 誤判定で意図しない文字コードになる可能性
- ユーザーが選択できるようにオプトイン方式
Microsoftは慎重にデフォルトを選んでいます。
Q5. BOMは関係ある?
A. はい、BOM(Byte Order Mark)があれば優先されます。
BOMがあるファイル:
- 自動判定より優先
- 確実に正しい文字コードで開ける
BOMがないファイル:
- 自動判定が実行される
Q6. ファイルを保存する時の文字コードは?
A. 開いた時と同じ文字コードで保存されます。
例:
- Shift_JISで開いた→Shift_JISで保存
- UTF-8で開いた→UTF-8で保存
変更したい場合は、手動で「エンコード付きで保存」を選択してください。
Q7. チーム開発での注意点は?
A. 文字コードを勝手に変更しないこと。
推奨
- プロジェクト全体でUTF-8に統一
- 既存ファイルの文字コードは維持
- 変更する場合はチーム全体で合意
勝手に変更すると、他のメンバーが困ります。
Q8. .editorconfigとの関係は?
A. .editorconfigの設定が優先されます。
.editorconfigで文字コードが指定されている場合:
- そちらが優先される
- 自動判定は実行されない
まとめ
VS Codeの文字コード自動判定について解説しました。
重要なポイントをまとめます。
基本設定
- 設定画面で「Files: Auto Guess Encoding」にチェック
- または、settings.jsonに
"files.autoGuessEncoding": true
メリット
- 文字化けを大幅に減らせる
- 複数の文字コードを自動で判別
- Shift_JIS、EUC-JPなどにも対応
注意点
- 100%完璧ではない
- 短いファイルや特殊な内容では失敗することも
- 判定に失敗したら手動で指定
推奨設定
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
トラブルシューティング
- 文字化けしたらファイルを閉じて再度開く
- それでもダメなら手動で文字コードを指定
- 検索で見つからない場合は
files.encodingも設定
ベストプラクティス
- 新規ファイルはUTF-8で統一
- 既存ファイルの文字コードは維持
- チーム開発では勝手に変更しない
- プロジェクトごとに設定を使い分ける
文字コードの問題は、日本語を扱う開発者にとって避けて通れない課題です。
しかし、自動判定機能を使えば、ほとんどの文字化けを防げます。
まずは基本設定だけでも有効にしてみましょう。
多くの場合、これだけで十分効果があります。
この記事を参考に、快適なVS Code環境を作ってください!

コメント