CLI-console-uitvoer maakt gebruik van UTF-8
Als de DOTNET_CLI_UI_LANGUAGE
of VSLANG
omgevingsvariabele is ingesteld, verandert de uitvoer en invoercodering van de .NET CLI-console in UTF-8, zodat de codepagina ook kan worden gewijzigd in UTF-8. Met dit nieuwe gedrag kunnen tekens uit talen die door deze omgevingsvariabelen zijn ingesteld, correct worden weergegeven.
Deze wijziging is alleen van invloed op Windows-besturingssystemen (de codering was in orde op andere platforms). Bovendien geldt dit alleen voor Windows 10- en latere versies waarbij de gebruikersinterfacecultuur die door de gebruiker is ingesteld, niet-Engels is.
Vorig gedrag
Tekens in bepaalde talen, waaronder Chinees, Duits, Japans en Russisch, zouden soms als vervormde tekens of zoals ?
in de console worden weergegeven. Voorbeeld:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
???????????????...
Nieuw gedrag
Vanaf .NET 7 (versie 7.0.3xx) en .NET 8 worden tekens correct weergegeven. Zowel de codering als de codepagina worden gewijzigd. Voorbeeld:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
正在确定要还原的项目…
Versies van Windows ouder dan Windows 10 1909 bieden geen volledige ondersteuning voor UTF-8 en kunnen na deze wijziging problemen ondervinden. (Vanaf .NET 8 en .NET 7.0.300 SDK wordt de .NET SDK standaard niet meer gewijzigd in UTF-8 op deze versies. Als u zich wilt afmelden voor het gebruik van UTF-8, zelfs in Windows 10-versies die dit niet ondersteunen, gebruikt u de DOTNET_CLI_FORCE_UTF8_ENCODING
omgevingsvariabele.)
Daarnaast is er een bestaande fout opgetreden waarbij de SDK van invloed kan zijn op de codering van andere opdrachten en programma's die in dezelfde opdrachtprompt worden aangeroepen nadat de SDK is uitgevoerd. Nu de SDK vaker de codering wijzigt, kan de impact van deze fout toenemen. De fout is echter opgelost in .NET 8 en .NET 7.0.300 SDK. Zie SDK voor meer informatie geen consolecodering meer wijzigen na voltooiing.
Versie geïntroduceerd
7.0.3xx .NET 8 Preview 1
Type wijziging die fouten veroorzaken
Deze wijziging kan van invloed zijn op de broncompatibiliteit en binaire compatibiliteit. Het is ook een gedragsverandering.
Reden voor wijziging
Het gebruik van de .NET CLI in niet-Engelse talen biedt een slechte ervaring.
Ontwikkelaars die de VSLANG
variabelen nog niet hebben gebruikt, DOTNET_CLI_UI_LANGUAGE
worden niet beïnvloed. De impact moet minimaal zijn, omdat deze taalinstelling niet goed werkte als gevolg van vervormde tekens. Bovendien kunnen alleen ontwikkelaars die Windows 10 of hoger gebruiken, worden beïnvloed, waarvan de meeste waarschijnlijk versie 1909 of hoger gebruiken.
De verouderde scenario's bieden al minder waarschijnlijk ondersteuning voor de verbroken talen, dus het is onwaarschijnlijk dat u een andere taal wilt gebruiken die deze onderbreking toch beschikbaar maakt.
Aanbevolen actie
- Als u een oudere versie van Windows 10 gebruikt, voert u een upgrade uit naar versie 1909 of hoger.
- Als u een verouderde console wilt gebruiken of problemen ondervindt met de build of anderen vanwege de wijziging van de codering, schakelt u deze wijziging uit
VSLANG
enDOTNET_CLI_UI_LANGUAGE
schakelt u deze wijziging uit.