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?
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.
Ich habe die Erweiterung Fix File Encoding erstellt, die verhindert, dass Visual Studio 2010+ BOM zu UTF-8-Dateien hinzufügt.
Nun mit Bildern.
File
-> Save As
.Save with Encoding..
.UTF-8 Without signature
-> Klicken Sie auf OK
.Ich hoffe, das erspart Ihnen etwas Zeit.
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.
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.
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.
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 ...
VS 2017 unterstützt EditorConfig so eine empfohlene Lösung wird
.editorconfig
-Datei zu Ihrer Code-Basis hinzufügen undcharset => utf-8
setzen. Sobald Sie eine Datei gespeichert haben, wird sie als UTF-8 ohne Stückliste gespeichert.