193

UTF-8(BOMなし)で保存する必要のあるJavaScriptファイルがあります。Notepad++で正しい形式に変換するたびに、VisualStudioで開いたときにBOMを使用してUTF-8に戻されます。VS2010がそれを実行しないようにするにはどうすればよいですか?

別の質問ですが、Visual Studioで署名のないUTF-8は、BOMのないUTF-8と同じですか?

4

12 に答える 12

246

BOMまたはバイトオーダーマークは、非常に煩わしい場合があります。Visual Studioは、ファイルを保存しない限りファイルを変更しません(Hansが言ったように)。

そして、これが問題の解決策 です。他のエンコーディングでファイルを保存する場合は、[名前を付けて保存]を選択し、ファイルダイアログの[保存]ボタンを拡張して、[エンコーディングで保存]を選択します。または、この設定を完全に削除したい場合は、[ファイル]メニューを開いて[詳細な保存オプション]を選択すると、[署名なしのUTF-8]を選択する必要があります(これで最後の質問にも答えられます:)。はい「署名なしのUTF-8」はBOMなしと同じです。

于 2011-03-23T20:53:44.347 に答える
38

今写真で。

  1. File->に移動しSave Asます。

    ファイル/名前を付けて保存

  2. 次に、[保存]ボタンで三角形をクリックし、[ 。]をクリックしますSave with Encoding...

    エンコーディングで保存

  3. [OK]をクリックしてファイルを上書きし、エンコーディングのリストから[検索] UTF-8 Without signature->[]をクリックしOKます。

    署名なしのUTF-8

これで時間を節約できれば幸いです。

于 2015-07-21T08:34:49.383 に答える
27

VisualStudio2010+がUTF-8ファイルにBOMを追加できないようにするFixFileEncoding拡張機能を作成しました。

于 2012-11-26T14:18:35.017 に答える
6

残念ながら、これはcsprojファイルでは機能しません。「高度な保存オプション」はありません。csファイルに対して「署名なしのUTF-8」に設定した場合でも、csprojファイルはBOMで保存されます。VSSを使用する場合でも、プロジェクトファイルについて文句を言います。

于 2011-08-30T13:17:31.183 に答える
6

UTF-8-「名前を付けて保存」(署名なし)デフォルト-署名なしのUTFのデフォルトを含めるように要求

VS 2017はEditorConfigをネイティブにサポートしているため、推奨される解決策は.editorconfig、コードベースにファイルを追加して設定することcharset => utf-8です。次に、ファイルを保存すると、BOMなしでUTF-8として保存されます。

于 2018-08-06T23:21:28.667 に答える
4

最近、任意のUTF-8エンコードファイルでBOMを追加または削除するこの小さなコマンドラインツールを見つけました:UTF BOM Utils(githubの新しいリンク)

少し欠点がありますが、ダウンロードできるのはプレーンなC++ソースコードのみです。makefileを作成し(たとえば、CMakeを使用して)、自分でコンパイルする必要があります。このページにはバイナリはありません。ただし、ソフトウェア開発者にとって、これは問題にはならないはずです。

于 2015-01-31T21:20:18.213 に答える
4

Visual Studio Codeの場合、次の手順を実行します。

  1. 右下から、現在のエンコーディングを選択します ここに画像の説明を入力してください
  2. オプションから、[ encondingで保存]を選択します ここに画像の説明を入力してください
  3. オプションから、UTF-8を選択します ここに画像の説明を入力してください
于 2019-02-14T20:13:25.153 に答える
3

vs2010 c ++の場合、ソースファイルにマルチバイト文字(中国語など)が含まれていると、BOMなしのUTF8で問題が発生します。

これらの文字はBOMがないと正しく認識されず、コンパイルに失敗します。

于 2012-08-02T19:44:32.460 に答える
1

Dave81のソリューションを使用しても、Visual Studio 2015 Communityは、そのhtmlファイルを保存するたびにファイルをUTF8-BOMに戻していました。

そのhtmlファイルを作成したら、プロジェクトを右クリックして[追加]を選択し、HTMLファイルを追加しました。

デフォルトでは、<meta charset="utf-8" />VisualStudioはHTMLファイルにタグを含めます。

タグを削除してからDave81のソリューションを適用するだけで、今回は問題が完全に解消されました。

Visual Studioはhtmlファイルを解析し、そのタグを検出すると、元のファイル形式(BOMなしのUTF-8)を考慮せずにファイルをUTF8-BOMに変換するようです。

Dave81のソリューションの直下でコメントしたはずですが、それを行うのに十分なポイントがありませんでした...

于 2016-09-21T14:15:48.410 に答える
1

標準ではBOMを使用しないことをお勧めしますが、[韓国語または中国語]などの複数バイトを使用する場合、VisualStudioにBOMがない場合に警告メッセージが表示されます。

実際、韓国語の文字列配列を作成しましたが、対応する文字列配列が実行時に壊れていました。

Visual Studioを使用する場合は、MS警告メッセージに従ってBOMを含むUTF-8を使用することをお勧めします。(マルチバイト文字を使用する場合)

于 2020-12-03T05:12:56.240 に答える
1

.csprojファイルで高度な保存を実行するには、最初にプロジェクトを右クリックして[プロジェクトのアンロード]を選択し、プロジェクトをアンロードする必要があります。これにより、.csprojファイルを別のエンコーディングで保存できるようになります。

于 2021-07-14T15:32:44.517 に答える
-2
UTF8Encoding utf8EmitBOM = new UTF8Encoding(false);
StreamWriter  sw = new StreamWriter(Path.Combine(sourcefilePath, fileName), false, utf8EmitBOM);

このコードは、BOMなしでUTF-8でファイルを作成します

于 2019-10-09T15:18:50.047 に答える