85
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VSCodeでShift_JISの自動判定エンコードでの注意

Posted at

VSCodeでShift_JISの自動判定エンコードでの注意

Visual Studio Code で自動エンコードするときの設定

settings.json
"files.autoGuessEncoding": true

これデフォルトだとfalseになっていますがtrueにすると便利ですよね

Grep検索で注意

しかし
Grep検索(Ctrl + Shift + F)を行うときはfiles.encodingのエンコード設定を使います。
自動エンコードは適用されません。
つまり特にユーザーによる指定がない場合は

  // ファイルの読み取り/書き込みで使用する既定の文字セット エンコーディング。言語ごとに構成することも可能です。
  "files.encoding": "utf8"

こちらが適用されるわけです。

したがってUTF-8ファイル以外を扱うときにGrep検索では注意が必要です。

VSCodeでは異なるエンコード間での自動エンコードによるGrep検索はできないようです。
エンコードが予めわかっているなら個別に指定するのが無難です。

Shift_JISのファイルでの注意

"files.autoGuessEncoding": trueを設定することの最大の利点ってこれだと思うのですが
Shift_JISのファイルを開くと自動で
ISO-8859-2エンコードだと思われて文字化けすることがあります
当然日本語文字列が検索で引っかからなくなるので注意

やはり異なるエンコードのファイルを扱うときは
ワークスペースの設定で個別に

settings.json
{
	"files.autoGuessEncoding": false,
	"files.encoding": "shiftjis",
}

としておくのが良さそうです。

実は言語ごとに設定ができる

言語ごとにエンコードが異なる場合
ユーザー設定で言語ごとに設定できます。

settings.json
"[php]":{
	"files.encoding": "utf8"
	},
"[html]": {
	"files.encoding": "shiftjis"
	},

この方法はおすすめですがやはりGrep検索のときはデフォルト設定になってしまうので
Grepするときだけは個別に指定しましょう

85
71
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
85
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?