VSCode(Visual Studio Code)でファイルを開いたときに、日本語部分が文字化けしていた経験はありませんか?
この問題は、ファイルの文字コード(エンコーディング)が原因で発生します。
この記事では、VSCodeで文字コードを確認・変換する方法を、初心者にもわかりやすく解説します。
文字コードとは

文字コードについて、まず基本を理解しておきましょう。
文字コードの役割
文字コードとは、コンピュータが文字を扱うために、各文字に割り当てられた番号のことです。
人間が読める「あ」という文字を、コンピュータが理解できる数値に変換するルールが文字コードです。
主な文字コードの種類
日本語を扱う際によく使われる文字コードは以下の通りです。
UTF-8
- 現在最も広く使われている文字コード
- Web開発では標準的に使用される
- 世界中のほぼすべての文字に対応
- VSCodeのデフォルト設定
Shift_JIS(シフトJIS)
- 日本で古くから使われている文字コード
- 古いWindowsシステムやWebサイトで使用されることがある
- 一部の文字が正しく表示されないことがある
EUC-JP
- 主にUNIX/Linuxシステムで使われてきた文字コード
- 現在はあまり使用されない
UTF-16
- Windowsの内部処理で使用されることが多い
- UTF-8より容量が大きくなる傾向がある
ISO-8859-1(Latin-1)
- 西ヨーロッパ言語用の文字コード
- 日本語には対応していない
VSCodeでの文字化けが起こる理由
文字化けが発生する主な原因を理解しておきましょう。
デフォルト設定がUTF-8
VSCodeは、ファイルを開く際にデフォルトでUTF-8として読み込みます。
しかし、実際のファイルがShift_JISやEUC-JPで保存されている場合、正しく表示されません。
異なる文字コードで保存されたファイル
古いテキストエディタで作成されたファイルは、Shift_JISで保存されていることがあります。
これをUTF-8として開くと、日本語部分が文字化けします。
HTMLファイルのcharset指定との不一致
HTMLファイル内で<meta charset="Shift_JIS">と指定されているのに、UTF-8で保存すると問題が発生します。
ファイルの実際の文字コードと、HTML内の指定が一致している必要があります。
現在の文字コードを確認する方法
ファイルの文字コードを確認する方法を説明します。
ステータスバーで確認
VSCodeでファイルを開くと、ウィンドウの右下にあるステータスバーに文字コードが表示されます。
「UTF-8」「Shift JIS」などの表示が、現在VSCodeがそのファイルをどの文字コードで開いているかを示しています。
ただし、これは「ファイルの実際の文字コード」ではなく、「VSCodeが使用している文字コード」である点に注意してください。
文字化けしている場合
日本語部分が文字化けしている場合、VSCodeが間違った文字コードでファイルを開いています。
この場合、正しい文字コードで開き直す必要があります。
文字コードを変更してファイルを開き直す方法
文字化けしたファイルを正しく表示する手順を説明します。
基本的な手順
- VSCodeで文字化けしているファイルを開く
- ウィンドウ右下のステータスバーにある文字コード表示(例:「UTF-8」)をクリック
- 画面上部に2つの選択肢が表示される
- 「エンコード付きで再度開く」をクリック
- 文字コードの一覧が表示される
- 正しい文字コードを選択(例:「Japanese (Shift JIS)」)
- ファイルが選択した文字コードで再表示される
正しい文字コードの見つけ方
どの文字コードが正しいかわからない場合は、いくつか試してみましょう。
日本語ファイルの場合:
- まず「Japanese (Shift JIS)」を試す
- それでもダメなら「Japanese (EUC-JP)」を試す
- 「コンテンツから推測」と表示されるオプションがあれば、それを選ぶ
正しい文字コードで開けば、日本語が正常に表示されます。
重要な注意点
「エンコード付きで再度開く」は、表示方法を変えるだけで、ファイル自体は変更されません。
そのまま上書き保存しないように注意してください。
誤って保存すると、ファイルが壊れる可能性があります。
文字コードを変換して保存する方法
ファイルの文字コードを実際に変換する手順を説明します。
変換の基本手順
- VSCodeで変換したいファイルを開く
- 文字化けしている場合は、まず正しい文字コードで開き直す
- ウィンドウ右下のステータスバーにある文字コード表示をクリック
- 「エンコード付きで保存」をクリック
- 文字コードの一覧から変換先の文字コードを選択(例:「UTF-8」)
- ファイルが選択した文字コードで保存される
変換前の準備
文字コード変換は元に戻せない操作です。
必ずバックアップを取ってから実行してください。
元のファイルをコピーして、別の場所に保存しておきましょう。
Shift_JISからUTF-8への変換例
古いShift_JISファイルをUTF-8に変換する具体的な手順です。
- Shift_JISのファイルを開く(文字化けしている状態)
- 右下の「UTF-8」をクリック
- 「エンコード付きで再度開く」を選択
- 「Japanese (Shift JIS)」を選択
- 正しく日本語が表示されることを確認
- 再度右下の「Shift JIS」をクリック
- 「エンコード付きで保存」を選択
- 「UTF-8」を選択
- ファイルがUTF-8で保存される
HTMLファイル変換時の追加作業
HTMLファイルの文字コードを変換する場合、ファイル内のcharset指定も変更する必要があります。
例: Shift_JISからUTF-8に変換した場合
変更前:
<meta charset="Shift_JIS">
変更後:
<meta charset="UTF-8">
この変更を忘れると、ブラウザで表示したときに文字化けします。
デフォルト文字コードの設定方法

新規ファイルのデフォルト文字コードを変更する方法を説明します。
設定画面からの変更
- 「ファイル」→「ユーザー設定」→「設定」を選択
- Windowsの場合:
Ctrl + , - Macの場合:
Command + , - 検索ボックスに「encoding」と入力
- 「Files: Encoding」の設定を見つける
- ドロップダウンメニューから希望の文字コードを選択
この設定は、新規作成するファイルにのみ適用されます。
既存のファイルの文字コードは変更されません。
settings.jsonでの設定
より詳細な設定は、settings.jsonファイルで行えます。
Ctrl + Shift + P(Mac:Command + Shift + P)でコマンドパレットを開く- 「settings json」と入力
- 「基本設定:ユーザー設定を開く(JSON)」を選択
- 以下のように記述
{
"files.encoding": "utf8"
}
ワークスペース単位での設定
プロジェクトごとに異なる文字コードを使いたい場合は、ワークスペース設定を使用します。
- 設定画面を開く
- 上部のタブで「ワークスペース」を選択
- 「Files: Encoding」を設定
この設定は、現在のプロジェクトにのみ適用されます。
文字コード自動判別機能
VSCodeには、文字コードを自動的に推測する機能があります。
Files: Auto Guess Encodingの有効化
- 設定画面を開く(
Ctrl + ,) - 検索ボックスに「auto guess encoding」と入力
- 「Files: Auto Guess Encoding」のチェックボックスをオンにする
この機能を有効にすると、ファイルを開くときに自動的に適切な文字コードを推測します。
自動判別の精度
自動判別は完璧ではありません。
特にファイルサイズが小さい場合や、文字数が少ない場合は誤判定することがあります。
文字化けしている場合は、手動で文字コードを指定する必要があります。
推奨設定
以下の設定を組み合わせると、多くの場合で文字化けを防げます。
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
言語別に文字コードを設定する方法
プログラミング言語ごとに異なる文字コードを使用する設定です。
settings.jsonでの言語別設定
例: JavaファイルのみEUC-JPを使用する場合
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true,
"[java]": {
"files.encoding": "eucjp"
}
}
この設定により、Javaファイルを開いたときだけEUC-JPが使用されます。
他のファイルは引き続きUTF-8で開かれます。
複数言語の設定例
{
"files.encoding": "utf8",
"[java]": {
"files.encoding": "eucjp"
},
"[powershell]": {
"files.encoding": "utf8bom"
}
}
PowerShellファイルには、BOM付きUTF-8を使用する設定です。
言語識別子の確認
各プログラミング言語の識別子は、公式ドキュメントで確認できます。
一般的な識別子:
- HTML:
html - CSS:
css - JavaScript:
javascript - Python:
python - Java:
java - C++:
cpp - PHP:
php
複数ファイルの文字コード一括変換
プロジェクト内の複数ファイルを一度に変換する方法を説明します。
拡張機能の利用
VSCodeの拡張機能「Batch Encoding Converter」を使うと便利です。
- 拡張機能ビューを開く(
Ctrl + Shift + X) - 「Batch Encoding Converter」を検索
- インストールボタンをクリック
- ワークスペース内のファイルを一括変換できるようになる
手動での一括変換
拡張機能を使わない場合は、1つずつ手動で変換する必要があります。
大量のファイルを変換する場合は、外部ツールやスクリプトの使用も検討しましょう。
Grep検索時の文字コード設定
ファイル検索時の文字コード設定も重要です。
検索時の文字化け問題
Shift_JISファイルに対してGrep検索を実行しても、デフォルトではヒットしないことがあります。
これは、検索時の文字コードがUTF-8に固定されているためです。
検索用文字コードの設定
- 設定画面を開く
- 検索ボックスに「encoding」と入力
- 「Search: Encoding」の項目を見つける
- 検索したい文字コードを入力(例:「shiftjis」)
この設定により、指定した文字コードでGrep検索が実行されます。
文字コード変換時の注意点
文字コード変換時に気をつけるべきポイントを説明します。
「再度開く」と「保存」の違い
エンコード付きで再度開く:
- ファイルを別の文字コードで読み直すだけ
- ファイル自体は変更されない
- 表示を確認するために使用
エンコード付きで保存:
- ファイルの文字コードを実際に変換
- 元のファイルが上書きされる
- 変換後は元に戻せない
この2つを間違えると、ファイルが壊れる可能性があります。
上書き保存のリスク
誤った文字コードで「エンコード付きで保存」を実行すると、元に戻せなくなります。
必ずバックアップを取ってから変換作業を行いましょう。
BOM(バイトオーダーマーク)の問題
UTF-8には「BOM付き」と「BOM無し」があります。
UTF-8 with BOM:
- ファイルの先頭に特殊なマーカーが付加される
- 一部のツールで問題を起こすことがある
- Windowsアプリケーションと互換性が高い
UTF-8(BOM無し):
- 一般的なUTF-8
- Web開発では通常こちらを使用
- Linuxやmacとの互換性が高い
PHPやRuby on Railsでは、BOM付きUTF-8を使うとエラーが発生することがあります。
Web開発では基本的にBOM無しUTF-8を使用しましょう。
特殊文字の扱い
一部の文字コード変換では、特殊文字が失われることがあります。
例:
- Shift_JISには含まれない文字をShift_JISに変換すると、文字が失われる
- 絵文字などはShift_JISで表現できない
変換後は必ず内容を確認しましょう。
トラブルシューティング
文字コード変換でよくある問題と解決策を紹介します。
変換後も文字化けする
原因1: 元のファイルがすでに壊れている
- バックアップから復元する
- 元のアプリケーションで開いて確認
原因2: 間違った文字コードで保存してしまった
- バックアップから復元する
- 正しい手順で再度変換
原因3: HTMLのcharset指定が間違っている
<meta charset="...">を確認- ファイルの実際の文字コードと一致させる
一部の文字だけ化ける
原因: 文字コードに含まれない文字を使用している
- UTF-8に変換する(ほぼすべての文字に対応)
- 使用できない文字を別の文字に置き換える
変換したファイルがGitで大量の差分として表示される
原因: 文字コード全体が変わったため
- これは正常な動作
- コミットメッセージに文字コード変換を明記
- チームメンバーに事前に連絡
検索でヒットしない
原因: 検索時の文字コード設定が合っていない
- 「Search: Encoding」設定を確認
- ファイルの文字コードと一致させる
ベストプラクティス
文字コードを扱う際の推奨される方法を紹介します。
新規プロジェクトではUTF-8を使用
特別な理由がない限り、UTF-8を使用しましょう。
UTF-8は現在の世界標準であり、以下の利点があります。
- ほぼすべての文字に対応
- Webブラウザのデフォルト
- GitやGitHubとの相性が良い
- 国際化が容易
プロジェクト全体で文字コードを統一
同じプロジェクト内では、文字コードを統一しましょう。
.editorconfigファイルを使うと、チーム全体で設定を共有できます。
[*]
charset = utf-8
自動判別機能は補助として使用
Files: Auto Guess Encodingは便利ですが、完璧ではありません。
重要なファイルでは、文字コードを明示的に確認・設定しましょう。
BOM無しUTF-8を推奨
Web開発では、BOM無しUTF-8を使用するのが一般的です。
VSCodeのデフォルト設定も「utf8」(BOM無し)です。
バージョン管理システムの設定
Gitを使用している場合、.gitattributesファイルで文字コードを指定できます。
*.html text eol=lf
*.css text eol=lf
*.js text eol=lf
エディタ設定の共有
チーム開発では、.vscode/settings.jsonでプロジェクト固有の設定を共有しましょう。
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
このファイルをGitにコミットすることで、チーム全体で同じ設定を使用できます。
まとめ
VSCodeでの文字コード変換について、重要なポイントをまとめます。
基本操作:
- 右下のステータスバーで現在の文字コードを確認
- 「エンコード付きで再度開く」で表示を変更
- 「エンコード付きで保存」でファイルを変換
推奨設定:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
注意点:
- 変換前に必ずバックアップを取る
- 「再度開く」と「保存」を間違えない
- HTMLファイルではcharset指定も変更する
- BOM無しUTF-8が推奨(Web開発)
トラブル回避:
- 新規プロジェクトはUTF-8で統一
- プロジェクト設定をチームで共有
- 重要なファイルは文字コードを明示的に確認
文字コードの理解と正しい変換方法を身につけることで、文字化けトラブルを未然に防ぐことができます。
VSCodeの豊富な文字コード対応機能を活用して、快適な開発環境を整えましょう。


コメント