5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

地獄の文字化け回避!VS Codeで賢く文字コードを自動判別・保存する設定

Last updated at Posted at 2025-07-02

プログラミングをしているときに、ファイルの文字コードで困った経験はありませんか?

特に、複数の文字コードが混在するプロジェクトでは、意図しない文字化けを引き起こしてしまうことがあります。

この記事では、VS Codeの文字コード設定で僕が実際に経験した問題と、その解決策をご紹介します。


複数の文字コードが混在するプロジェクトでの悩み

僕が担当しているプロジェクトでは、長年の開発経緯からPHPファイルはShift JIS、JavaScriptファイルはUTF-8と、複数の文字コードが混在していました。

大規模な修正作業でPHPファイルとJavaScriptファイルを頻繁に行き来しながら作業していたのですが、そのたびにVS Codeの文字コード設定を都度切り替える必要があり、これが非常に面倒でした。

そして、ある日やってしまいました。

JavaScriptファイルをUTF-8で保存すべきところを、誤ってShift JISで保存してしまい、結果として文字化けが発生してしまったのです。

この経験から、VS Codeで文字コードを自動的に、かつ適切に設定する方法はないかと考えるようになりました。


【結論】VS Codeで文字コードを自動判別し、適切に設定する方法

優しいチームメンバーが、以下の設定を.vscode/settings.jsonに記述することで、この問題を解決できることを教えてくださいました。

"files.candidateGuessEncodings": [
    "utf8",
    "shiftjis"
],
"files.autoGuessEncoding": true,
"files.encoding": "utf8",
"[php]": {
    "files.encoding": "shiftjis"
}

それでは、それぞれの設定項目について詳しく見ていきましょう。

files.candidateGuessEncodings

"files.candidateGuessEncodings": [
    "utf8",
    "shiftjis"
],

この設定は、VS Codeがファイルの文字コードを推測する際に、どのエンコーディングを候補として試すかを指定します。

僕の環境ではUTF-8とShift JISが混在しているので、この2つを優先的に試すように指定しています。

もし他の文字コードも扱う場合は、ここに追加することで対応できます。

files.autoGuessEncoding

"files.autoGuessEncoding": true,

この設定をtrueにすることで、VS Codeはファイルを開く際に、そのファイルの文字コードを自動的に推測するようになります。

files.candidateGuessEncodingsで指定した候補を元に推測してくれるため、先ほどのような文字化けを防ぐのに役立ちます。

files.encoding

"files.encoding": "utf8",

この設定は、VS Codeで新しいファイルを作成する際や、既存のファイルを保存する際のデフォルトの文字コードを指定します。

僕の場合はデフォルトをutf8に設定しました。

[php]

"[php]": {
    "files.encoding": "shiftjis"
}

これは、言語固有の設定です。

角括弧[]の中に言語ID(例: phpjavascripthtmlなど)を指定することで、その言語のファイルに対してのみ適用される設定を記述できます。

僕のプロジェクトではPHPファイルがShift JISで保存されているため、PHPファイルを開いた際や保存する際には自動的にshiftjisが適用されるように設定しています。

これにより、PHPファイルを開くたびに文字コードを切り替える手間がなくなり、作業効率が格段に上がりました。


まとめ

今回ご紹介したVS Codeの文字コード設定を行うことで、以下のようなメリットが得られます。

  • 文字化けの防止: 誤った文字コードでの保存を防ぎ、文字化けによる問題を回避できます。
  • 作業効率の向上: ファイルごとに手動で文字コードを切り替える手間が省け、開発に集中できます。
  • ストレス軽減: 文字コードに関する細かい配慮から解放され、精神的な負担が軽減されます。

もし、あなたも複数の文字コードが混在するプロジェクトで文字化けや文字コードの切り替えに悩んでいるのであれば、ぜひこの設定を試してみてください。

きっと、あなたの開発体験がより快適になるはずです!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?