Festlegen der Standardcodierung in Visual Studio

97

Ich suche nach einer Möglichkeit, Visual Studio so einzurichten, dass meine Dateien immer in UTF-8 gespeichert werden.

Ich habe nur Optionen gefunden, um dieses Projekt weit zu setzen. Gibt es eine Möglichkeit, Visual Studio breit einzustellen?

Thomaschaaf
quelle
30
Wo haben Sie die Optionen gefunden, um dieses Projekt zu erweitern?
Marc

Antworten:

63

Möchten Sie, dass die Dateien als UTF-8 gespeichert werden, weil Sie Sonderzeichen verwenden, die bei der ASCII-Codierung verloren gehen würden? Wenn dies der Fall ist, gibt es eine globale VS2008-Einstellung Tools > Options > Environment > Documentsmit dem Namen Save documents as Unicode when data cannot be saved in codepage. Wenn dies aktiviert ist, wird VS2008 als Unicode gespeichert, wenn bestimmte Zeichen nicht in der ansonsten standardmäßigen Codepage dargestellt werden können.

Welche Dateien werden nicht als UTF-8 gespeichert? Alle meine .cs, .csproj, .sln, .config, .as * x usw. werden standardmäßig als UTF-8 (mit Signatur, Byte-Ordnungszeichen) gespeichert.

Samuel Meacham
quelle
2
Danke für den Einstellungstipp. Ich hatte dieses Problem mit XAML-Dateien, die Fehler beim Kompilieren verursachten
surfen
Hallo, wissen Sie, warum Report Designer das Codierungsattribut in utf-8 ändert? stackoverflow.com/questions/30071846/…
Mohammadreza
2
Immer noch keine bessere Lösung? Mein VS2015 setzt die Codepage nach jedem Absturz immer wieder zurück, und mit meiner Elektrizität passieren diese ziemlich oft, so traurig, wie Microsoft dazu gekommen ist, wie sie die beste IDE
erstellen
2
Wenn Sie Unicode einstellen, wird tatsächlich UTF-8 oder UTF-16 verwendet?
Binki
9
Das Problem ist, dass Daten in der Standard-Systemcodepage gespeichert werden KÖNNTEN. Andere Software kann jedoch nicht immer Quellen in meiner Systemcodepage lesen. Daher suche ich nach einer Möglichkeit, VS zu zwingen, standardmäßig alle Textdateien in UTF-8 zu speichern. Ich habe keine Ahnung, warum zum Teufel jemand Textdaten in einer anderen Codepage als UTF-8 speichern möchte.
BlackOverlord
19

Was

Dies ist mit EditorConfig möglich .

Mit EditorConfig können Entwickler konsistente Codierungsstile zwischen verschiedenen Editoren und IDEs definieren und beibehalten.

Dies beinhaltet auch die Dateicodierung.

EditorConfig ist standardmäßig in Visual Studio 2017 integriert, und ich habe Plugins für Versionen verfügbar, die so alt sind wie VS2012. Weitere Informationen finden Sie auf der Seite EditorConfig Visual Studio Plugin .

Wie

Sie können eine EditorConfig-Konfigurationsdatei in Ihrer Ordnerstruktur so hoch einrichten, dass sie alle beabsichtigten Repos umfasst (bis zu Ihrem Laufwerksstamm, falls Ihre Dateien wirklich überall verstreut sind), und die Einstellungcharset konfigurieren :

Zeichensatz : Auf latin1, utf-8, utf-8-bom, utf-16be oder utf-16le setzen, um den Zeichensatz zu steuern.

Sie können Filter und Ausnahmen usw. auf jeder Ordnerebene oder nach Dateiname / Dateityp hinzufügen, wenn Sie eine genauere Steuerung wünschen.

Nach der Konfiguration sollten kompatible IDEs automatisch dafür sorgen, dass übereinstimmende Dateien den festgelegten Regeln entsprechen. Beachten Sie, dass Visual Studio nicht alle Ihre Dateien automatisch konvertiert, sondern seinen Beitrag leistet, wenn Sie mit Dateien in der IDE arbeiten (öffnen und speichern).

Was als nächstes

Obwohl Sie ein Visual-Studio-weites Setup haben könnten, empfehle ich dringend, weiterhin ein EditorConfig-Stammverzeichnis in die Versionskontrolle Ihrer Lösung aufzunehmen, damit explizite Einstellungen automatisch auch mit allen Teammitgliedern synchronisiert werden. Die Root-Editor-Konfigurationsdatei Ihres Laufwerks kann der Fallback sein, wenn für einige Projekte noch keine eigenen Editor-Konfigurationsdateien eingerichtet sind.

Imre Pühvel
quelle
4

Ich arbeite mit Windows7.

Systemsteuerung - Region und Sprache - Verwaltung - Sprache für Nicht-Unicode-Programme.

Nachdem ich "Systemgebietsschema ändern" auf Englisch (USA) gesetzt habe. Meine Standardkodierung von vs2010 ändert sich zu Windows-1252. Es war gb2312vorher.

Ich habe eine neue .cppDatei für ein C ++ - Projekt erstellt, nachdem ich die neue Datei in TFS eingecheckt habe. Die Codierung zeigt Windows-1252 auf der Eigenschaftenseite der Datei an.

user10959888
quelle
In Windows 10 gibt es ein Kontrollkästchen mit der Bezeichnung "Beta: Verwenden Sie Unicode UTF-8 zur Unterstützung von Weltsprachen". Wenn ich es überprüfe, kann ich Dateien, die mit Windows-1252 codieren, in Visual Studio 2019 öffnen. Diese Konfiguration finde ich jedoch nur aufgrund dieser Antwort. Vielen Dank!
Gean Ribeiro
1

Ich kenne keine globale Einstellung, aber Sie können dies versuchen:

  1. Speichern Sie alle Visual Studio-Vorlagen in UTF-8
  2. Schreiben Sie ein Visual Studio-Makro / Add-In, das das DocumentSaved-Ereignis abhört und die Datei im UTF-8-Format speichert (falls nicht bereits geschehen).
  3. Fügen Sie Ihrem Quellcodeverwalter einen Proxy hinzu, der sicherstellt, dass neue Dateien immer UTF-8 sind.
Shay Erlichmen
quelle
2
3. kann eine schlechte Idee sein, da beim Einchecken einer Datei festgestellt wird, dass Ihre Datei nicht mit der eingecheckten Datei übereinstimmt. Zumindest mit Subversion. Wenn es möglich wäre, sowohl den Check als auch den Check-in zu verschlüsseln, wäre dies kein Problem.
TamusJRoyce
Hallo, wissen Sie, warum Report Designer das Codierungsattribut in utf-8 ändert? stackoverflow.com/questions/30071846/…
Mohammadreza