UTF-8(BOMなし)で保存する必要があるjavascriptファイルがあり、Notepad ++で正しい形式に変換するたびに、BOMを使用してUTF-8に戻りますVisual Studioで開きます。 VS2010がそれを行うのを停止するにはどうすればよいですか?
別の質問として、Visual Studioの署名のないUTF-8はBOMのないUTF-8と同じですか?
BOMまたはバイトオーダーマークは時々非常に迷惑です。 Visual Studioは、保存しない限りファイルを変更しません(ハンスが言ったように)。
そして、ここにあなたの問題の解決策があります:他のエンコーディングでファイルを保存したい場合、名前を付けて保存を選択し、ファイルダイアログの保存ボタンを拡張し、「エンコーディングで保存」を選択します。または、この設定を完全に削除する場合は、[ファイル]メニューを開いて[詳細保存オプション]を選択し、[署名なしのUTF-8]を選択する必要があります(最後の質問にも答えました)。はい、「署名なしのUTF-8」はBOMなしと同じです。
Visual Studio 2010+がBOMをUTF-8ファイルに追加できないようにする Fix File Encoding 拡張機能を作成しました。
写真付き。
File
-> Save As
に移動します。Save with Encoding..
]をクリックします。UTF-8 Without signature
-> [OK
]をクリックします。これで時間を節約できることを願っています。
残念ながら、これはcsprojファイルでは機能しません。 「高度な保存オプション」はありません。csファイルに対して「署名なしのUTF-8」に設定しても、csprojファイルはBOMで保存されます。 VSSを使用している場合でも、プロジェクトファイルに関するエラーが表示されます。
TF-8-「名前を付けて保存」(署名なし)デフォルト-署名なしのUTFのデフォルトを含める要求
VS 2017はネイティブで EditorConfig をサポートしているため、推奨されるソリューションは
.editorconfig
ファイルをコードベースに追加し、charset => utf-8
を設定することです。その後、ファイルを保存すると、BOMなしのUTF-8として保存されます。
最近、任意のUTF-8エンコードファイルでBOMを追加または削除するこの小さなコマンドラインツールを見つけました: TF BOM Utils (- new link at github)
少しの欠点は、プレーンなC++ソースコードしかダウンロードできないことです。メイクファイルを作成し(たとえば CMake を使用)、自分でコンパイルする必要があります。このページではバイナリは提供されていません。ただし、ソフトウェア開発者にとっては、これは問題になりません。
Vs2010 c ++では、ソースファイルにマルチバイト文字(中国語など)が含まれる場合、BOMなしのUTF8で問題が発生します。
これらの文字はBOMなしでは正しく認識されず、コンパイルに失敗します。
Dave81のソリューションを使用しても、Visual Studio 2015コミュニティは、そのhtmlファイルを保存するたびにファイルをUTF8-BOMに戻していました。
そのhtmlファイルを作成したら、プロジェクトを右クリックして[追加]を選択し、HTMLファイルを追加しました。
デフォルトでは、Visual StudioはHTMLファイルに<meta charset = "utf-8" />タグを含めます。
タグを削除してからDave81のソリューションを適用するだけで、今回の問題は解消されました。
Visual Studioはhtmlファイルを解析し、そのタグが表示されると、元のファイル形式(BOMなしのUTF8)を考慮せずにファイルをUTF8-BOMに変換するようです。
** Dave81のソリューションの直下でコメントを付けていましたが、そうするのに十分なポイントがありませんでした...