Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha a vagy DOTNET_CLI_UI_LANGUAGE környezeti VSLANG változó be van állítva, a .NET CLI-konzol kimenete és bemeneti kódolása UTF-8-ra változik, így a kódlap UTF-8-ra is módosulhat. Ez az új viselkedés lehetővé teszi, hogy az adott környezeti változók által beállított nyelvek karakterei megfelelően jelenjenek meg.
Ez a változás csak a Windows operációs rendszereket érinti (a kódolás más platformokon is rendben volt). Ezenkívül csak olyan Windows 10-es és újabb verziókra vonatkozik, ahol a felhasználó által beállított felhasználói felületi kultúra nem angol.
Előző viselkedés
Bizonyos nyelvek karakterei, például a kínai, német, japán és orosz, néha olvashatatlan karakterekként vagy a konzolon ? formájában jelennek meg. Például:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
???????????????...
Új viselkedés
A .NET 7 -től (7.0.3xx verzió) és a .NET 8-tól kezdve a karakterek megfelelően jelennek meg. A kódolás és a kódlap is megváltozik. Például:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
正在确定要还原的项目…
A Windows 10 1909-nél régebbi Windows-verziók nem támogatják teljes mértékben az UTF-8-at, és a módosítás után problémák léphetnek fel. (A .NET 8 és a .NET 7.0.300 SDK-tól kezdve a .NET SDK alapértelmezés szerint nem módosítja a kódolást UTF-8-ra ezeken a verziókon. Ha az UTF-8 használatát még olyan Windows 10-verziókon is szeretné használni, amelyek nem támogatják, használja a környezeti változót DOTNET_CLI_FORCE_UTF8_ENCODING .)
Emellett volt egy meglévő hiba , amely miatt az SDK hatással lehet az ugyanazon parancssorban hívott többi parancs és program kódolására, miután az SDK befejezte a végrehajtást. Most, hogy az SDK gyakrabban módosítja a kódolást, a hiba hatása növekedhet. A hibát azonban kijavítottuk a .NET 8 és a .NET 7.0.300 SDK-ban. További információ: Az SDK már nem módosítja a konzol kódolását a befejezés után.
Bevezetett verzió
7.0.3xx .NET 8 előzetes verzió 1
A kompatibilitástörő változás típusa
Ez a módosítás hatással lehet a forráskompatibilitásra és a bináris kompatibilitásra. Ez viselkedésbeli változás is.
A változás oka
A .NET CLI nem angol nyelvű használata rossz élményt nyújtott.
Azok a fejlesztők, akik még nem használták a VSLANG és DOTNET_CLI_UI_LANGUAGE változókat, nincsenek érintve. A hatásnak minimálisnak kell lennie, mivel ez a nyelvi beállítás kezdetben nem működött jól az összezavart karakterek miatt. Emellett csak a Windows 10 vagy újabb verziót használó fejlesztőkre lehet hatással, amelyek többsége valószínűleg az 1909-es vagy újabb verziót használja.
Az örökölt forgatókönyvek már kevésbé támogatják a megszakadt nyelveket, ezért nem valószínű, hogy egy másik nyelvet használna, amely felfedheti ezt a hibát.
Javasolt művelet
- Ha a Windows 10 régebbi verzióját használja, frissítsen az 1909-es vagy újabb verzióra.
- Ha régi konzolt szeretne használni, vagy a kódolás módosítása miatt buildelési problémákba ütközik, állítsa vissza
VSLANGésDOTNET_CLI_UI_LANGUAGEértékét, hogy letiltsa a módosítást.