Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn die Umgebungsvariable DOTNET_CLI_UI_LANGUAGE
oder VSLANG
festgelegt ist, ändern sich die .NET CLI-Konsolenausgabe und die Eingabecodierung zu UTF-8, damit die Codeseite ebenfalls zu UTF-8 gewechselt werden kann. Mit diesem neuen Verhalten können Zeichen aus Sprachen, die von diesen Umgebungsvariablen festgelegt werden, ordnungsgemäß gerendert werden.
Diese Änderung betrifft nur Windows-Betriebssysteme (die Codierung war auf anderen Plattformen in Ordnung). Darüber hinaus gilt es nur für Windows 10 und höhere Versionen, in denen die vom Benutzer festgelegte Benutzeroberflächenkultur nicht englisch ist.
Vorheriges Verhalten
Zeichen in bestimmten Sprachen, einschließlich Chinesisch, Deutsch, Japanisch und Russisch, würden manchmal als garblierte Zeichen oder wie ?
in der Konsole angezeigt. Beispiel:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
???????????????...
Neues Verhalten
Ab .NET 7 (Version 7.0.3xx) und .NET 8 werden Zeichen korrekt gerendert. Sowohl die Codierung als auch die Codepage ändern sich. Beispiel:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
正在确定要还原的项目…
Windows-Versionen, die älter als Windows 10 1909 sind, unterstützen UTF-8 nicht vollständig und können nach dieser Änderung Probleme auftreten. (Ab .NET 8 und .NET 7.0.300 SDK ändert das .NET SDK die Codierung für diese Versionen standardmäßig nicht mehr in UTF-8. Verwenden Sie die Umgebungsvariable, um sich für die Verwendung von UTF-8 auch bei Windows 10-Versionen zu entscheiden, die DOTNET_CLI_FORCE_UTF8_ENCODING
dies nicht unterstützen.)
Darüber hinaus gab es einen vorhandenen Fehler , bei dem sich das SDK auf die Codierung anderer Befehle und Programme auswirken kann, die in derselben Eingabeaufforderung aufgerufen werden, nachdem das SDK die Ausführung abgeschlossen hat. Da das SDK nun häufiger die Codierung ändert, kann sich die Auswirkung dieses Fehlers erhöhen. Der Fehler wurde jedoch in .NET 8 und .NET 7.0.300 SDK behoben. Weitere Informationen finden Sie unter SDK ändert die Konsolencodierung nach Abschluss nicht mehr.
Eingeführte Version
7.0.3xx .NET 8 Preview 1
Art der einschneidenden Änderung
Diese Änderung kann sich auf Quellkompatibilität und binäre Kompatibilität auswirken. Es ist auch eine Verhaltensänderung.
Grund für Änderung
Die Verwendung der .NET CLI in nicht englischen Sprachen bietet eine schlechte Erfahrung.
Entwickler, die die Variablen VSLANG
und DOTNET_CLI_UI_LANGUAGE
noch nicht verwendet haben, sind nicht betroffen. Da diese Spracheinstellung aufgrund von verzerrten Zeichen ohnehin nicht gut funktioniert hätte, sollte die Auswirkung minimal sein. Außerdem können nur Entwickler, die Windows 10 oder höher verwenden, betroffen sein, von denen die meisten wahrscheinlich Version 1909 oder höher verwenden.
Die Legacyszenarien neigen bereits weniger dazu, kaputte Sprachen zu unterstützen, daher ist es unwahrscheinlich, dass Sie eine andere Sprache verwenden könnten, die diesen Bruch ohnehin sichtbar macht.
Empfohlene Aktion
- Wenn Sie eine ältere Version von Windows 10 verwenden, führen Sie ein Upgrade auf Version 1909 oder höher durch.
- Wenn Sie eine ältere Konsole verwenden möchten oder aufgrund der geänderten Codierung Probleme beim Erstellen haben, deaktivieren Sie die Einstellungen
VSLANG
undDOTNET_CLI_UI_LANGUAGE
, um diese Änderung zu verhindern.