webentwicklung-frage-antwort-db.com.de

UTF-8 ohne Stückliste

Ich habe Javascript-Dateien, die ich brauche, um sie in UTF-8 (ohne BOM) zu speichern. Jedes Mal, wenn ich sie in Notepad ++ in das richtige Format konvertiere, werden sie beim Öffnen auf UTF-8 mit BOM zurückgesetzt in Visual Studio. Wie kann ich VS2010 davon abhalten?

Eine andere Frage: Ist UTF-8 ohne Signatur in Visual Studio das gleiche wie UTF-8 ohne Stückliste?

163
kabaros

BOM oder Byte Order Mark ist manchmal ziemlich ärgerlich. Visual Studio ändert die Datei nur, wenn Sie sie speichern (wie Hans sagte). 

Und hier ist die Lösung für Ihr Problem: .__ Wenn Sie eine Datei mit anderen Kodierungen speichern möchten, wählen Sie Speichern unter und erweitern Sie die Schaltfläche "Speichern" im Dateidialogfeld und wählen Sie "Mit Kodierung speichern". Oder wenn Sie diese Einstellung dauerhaft loswerden möchten, öffnen Sie einfach das Datei-Menü und wählen Sie "Erweiterte Speicheroptionen". Dort sollten Sie "UTF-8 ohne Signatur" wählen (und das hat auch Ihre letzte Frage beantwortet :). Ja "UTF-8 ohne Signatur" ist das gleiche wie ohne Stückliste.

205
Dave81

Ich habe die Erweiterung Fix File Encoding erstellt, die verhindert, dass Visual Studio 2010+ BOM zu UTF-8-Dateien hinzufügt.

23
Sergey Vlasov

Nun mit Bildern.

  1. Gehen Sie zu File -> Save As.

enter image description here

  1. Klicken Sie dann auf die Schaltfläche Speichern, klicken Sie auf das Dreieck und klicken Sie auf Save with Encoding...

enter image description here

  1. Klicken Sie auf OK, um die Datei zu überschreiben. Suchen Sie dann in der Liste der Kodierungen UTF-8 Without signature -> Klicken Sie auf OK.

enter image description here

Ich hoffe, das erspart Ihnen etwas Zeit.

19

Leider funktioniert das nicht mit csproj-Dateien. Es gibt keine "Erweiterte Speicheroption". Auch wenn Sie für eine CS-Datei "UTF-8 ohne Signatur" festgelegt haben, werden die csproj-Dateien immer noch mit BOM gespeichert. Wenn Sie VSS verwenden, klagt es immer noch über Projektdateien.

5
Wray

Vor kurzem habe ich dieses winzige Befehlszeilentool gefunden, mit dem die BOM in beliebigen UTF-8-kodierten Dateien hinzugefügt oder entfernt wird: UTF BOM Utils ( new link at github)

Kleiner Nachteil, Sie können nur den einfachen C++ - Quellcode herunterladen. Sie müssen das Makefile erstellen (z. B. mit CMake ) und es selbst kompilieren. Binärdateien werden auf dieser Seite nicht bereitgestellt. Für einen Softwareentwickler sollte dies jedoch kein Problem sein.

2

Bei vs2010 c ++ gibt es Probleme mit UTF8 ohne Stückliste, wenn Quelldateien Mehrbyte-Zeichen enthalten (z. B. Chinesisch).

Diese Zeichen werden ohne Stückliste nicht richtig erkannt und führen zu fehlerhaftem Abschluss.

2
Martin Wang

Selbst mit der Lösung von Dave81 hat die Visual Studio 2015-Community meine Datei immer noch in UTF8-BOM umgewandelt, wenn ich die HTML-Datei speichere.

Beim Erstellen dieser HTML-Datei habe ich mit der rechten Maustaste auf das Projekt geklickt und "Hinzufügen" ausgewählt. Anschließend wurde eine HTML-Datei hinzugefügt.

Standardmäßig enthält Visual Studio in Ihrer HTML-Datei ein Tag <meta charset = "utf-8" /> .

Durch einfaches Entfernen des Tags und anschließender Anwendung der Lösung von Dave81 wurde das Problem dieses Mal nicht mehr angezeigt.

Es scheint, als würde das Visual Studio Ihre HTML-Datei analysieren und wenn es das Tag sieht, konvertiert es die Datei in UTF8-BOM ohne Rücksicht auf das ursprüngliche Dateiformat (UTF8 ohne BOM).

** Ich hätte direkt unter der Lösung von Dave81 einen Kommentar abgegeben, aber ich hatte nicht genug Punkte, um dies zu tun ... 

1
Jonny

UTF-8 - "Speichern unter" (ohne Signatur) Standard - Anforderung, Standard für UTF ohne Signatur einzuschließen

VS 2017 unterstützt EditorConfig so eine empfohlene Lösung wird .editorconfig-Datei zu Ihrer Code-Basis hinzufügen und charset => utf-8 setzen. Sobald Sie eine Datei gespeichert haben, wird sie als UTF-8 ohne Stückliste gespeichert.

1
Dave Anderson

Führen Sie für Visual Studio Code Folgendes aus:

  1. Wählen Sie von rechts unten die aktuelle Kodierung aus  enter image description here
  2. Wählen Sie unter Optionen Speichern mit enconding enter image description here
  3. Wählen Sie unter Optionen UTF-8 enter image description here
0
Mahesh