Posted at

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

More than 1 year has passed since last update.


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するときだけは個別に指定しましょう