Shift-JIS日本語のファイルが、上書き保存時にUTF-8 BOM付きになることがある
-
特に日本語は含めていない、ファイル内容全般が英数字だけのファイルがあります。
SHIFT-JISファイルで保存したあとで、CTRL+Sなどで何回か保存すると、
勝手に、UTF-8 BOM付きになる事象が起きました。これによって、Meryで保存したVBScriptなどがエラーになる事象発生しています。
確認いただけないでしょうか。
| tak | 返信 -
補足します。
UTF-8になったのは、EditorConfigの影響もいあったのかもしれません。
ただし、日本語を含む文章は、「上書き保存」では、勝手にEncodingが変更されることは
なかったのですが、日本語を含まない文書のみ、「上書き保存」で、Encodingが変更されるようです。
-----
該当フォルダーの.EditorConfigは以下のようなっています。
----
root = true
# EditorConfig
[*]
charset = utf-8-bom
end_of_line = crlf
indent_size = 8
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true[*.py]
indent_size = 4
indent_style = space[*.ps1]
indent_size = 4
indent_style = tab
charset = utf-8-bom| tak | 返信 -
Mery をご愛用いただきありがとうございます。
EditorConfig は [上書き保存] の前にエンコーディングを .editorconfig で設定したものに変更してから上書き保存します。
シフト JIS のファイルを開いて上書き保存した場合、.editorconfig の適用範囲内のファイルであれば、UTF-8 (BOM 付き) になるのが正常な動作です。
いただいた .editorconfig で試してみましたが、日本語を含む・含まないにかかわらず UTF-8 (BOM 付き) に変更されました。
確認した環境は Mery Ver 3.0.3 (64bit)、EditorConfig Ver 1.0.2 です。
ご報告いただいたケースで考えられる原因としては、"エンコーディングが変更されない「日本語を含む文章」のファイル" の場所が .editorconfig の影響を受けないフォルダーの配下にあるとか、
他には、そのファイルと同じフォルダーに別の .editorconfig が存在しているとか。
あとは、EditorConfig のバージョンが Ver 1.0.2 未満でしたら .editorconfig の適用タイミングが少し緩いので、Ver 1.0.2 に更新すると改善されるかもしれません。
| Kuro | 返信 -
Pluginが、1.0.0でしたので、1.0.2に上げてみました。
確かに、1.0.0と動きは変わったのですが、以下のようになりました。・文書内容を変更後に、上書きすると、SHIFT-JISからUTF-8に変わる。
・少しも編集せず、上書き保存しても、Encoding形式に変化なし。なお、Mery本体のバージョンは、まだ3.0.3です。
| tak | 返信 -
ご確認ありがとうございます。
EditorConfig は [上書き保存] を実行したとき、保存する直前にエンコードを変更する仕様となっているので、ご提示いただいた動作で合っていると思います。
編集を行っていない場合はそもそも [上書き保存] の操作ができませんから、エンコードも変更されないはずなので、EditorConfig の仕様どおりだと思います。
| Kuro | 返信 -
なるほど。ありがとうございます。
お手間を取らせてすみませんでした。| tak | 返信