VSCodeでShift_JISの自動判定エンコードでの注意
Visual Studio Code で自動エンコードするときの設定
"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エンコードだと思われて文字化けすることがあります
当然日本語文字列が検索で引っかからなくなるので注意
やはり異なるエンコードのファイルを扱うときは
ワークスペースの設定で個別に
{
"files.autoGuessEncoding": false,
"files.encoding": "shiftjis",
}
としておくのが良さそうです。
実は言語ごとに設定ができる
言語ごとにエンコードが異なる場合
ユーザー設定で言語ごとに設定できます。
"[php]":{
"files.encoding": "utf8"
},
"[html]": {
"files.encoding": "shiftjis"
},
この方法はおすすめですがやはりGrep検索のときはデフォルト設定になってしまうので
Grepするときだけは個別に指定しましょう