Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud je proměnná prostředí DOTNET_CLI_UI_LANGUAGE nebo VSLANG nastavena, změní se výstup a vstupní kódování konzoly .NET CLI na UTF-8, aby se znaková stránka také mohla změnit na UTF-8. Toto nové chování umožňuje správné vykreslení znaků z jazyků nastavených těmito proměnnými prostředí.
Tato změna má vliv jenom na operační systémy Windows (kódování bylo v pořádku na jiných platformách). Kromě toho platí jenom pro Windows 10 a novější verze, kde jazyková verze uživatelského rozhraní nastavená uživatelem není angličtina.
Předchozí chování
Znaky v určitých jazycích, včetně čínštiny, němčiny, japonštiny a ruštiny, se někdy zobrazují jako zkomolené znaky nebo jako ? v konzole. Například:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
???????????????...
Nové chování
Od verze .NET 7 (verze 7.0.3xx) a .NET 8 se znaky vykreslují správně. Kódování i stránka kódu se mění. Například:
C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
正在确定要还原的项目…
Verze Windows starší než Windows 10 1909 plně nepodporují UTF-8 a můžou po této změně narazit na problémy. (Počínaje sadou .NET 8 a .NET 7.0.300 SDK už sada .NET SDK ve výchozím nastavení nezmění kódování na UTF-8. Pokud chcete vyjádřit výslovný souhlas s používáním UTF-8 i ve verzích Windows 10, které ho nepodporují, použijte proměnnou DOTNET_CLI_FORCE_UTF8_ENCODING prostředí.)
Kromě toho došlo k existující chybě , kdy sada SDK může ovlivnit kódování jiných příkazů a programů volaných na stejném příkazovém řádku po dokončení spuštění sady SDK. Teď, když sada SDK častěji mění kódování, může dojít ke zvýšení dopadu této chyby. Chyba však byla opravena v .NET 8 a v SDK .NET 7.0.300. Další informace najdete v tématu Sada SDK, která po dokončení nezmění kódování konzoly.
Verze byla představena
7.0.3xx .NET 8 Preview 1
Typ zásadní změny
Tato změna může ovlivnit kompatibilitu zdroje a binární kompatibilitu. Jedná se také o změnu chování.
Důvod změny
Použití rozhraní příkazového řádku .NET v neanglických jazycích poskytovalo špatný uživatelský zážitek.
Vývojáři, kteří ještě nepoužívali proměnné VSLANG a DOTNET_CLI_UI_LANGUAGE, nejsou ovlivnění. Dopad by měl být minimální, protože toto nastavení jazyka by už od počátku nefungovalo dobře kvůli zkomoleným znakům. Může to mít vliv jenom na vývojáře používající Windows 10 nebo novější, z nichž většina pravděpodobně používá verzi 1909 nebo novější.
Starší scénáře pravděpodobně méně často podporují porušené jazyky, takže pravděpodobně nebudete chtít použít jiný jazyk, který by mohl tento problém přesto odhalit.
Doporučená akce
- Pokud používáte starší verzi Windows 10, upgradujte na verzi 1909 nebo novější.
- Pokud chcete použít starší konzolu nebo máte problémy se sestavením či jiné potíže kvůli změně kódování, zrušte nastavení
VSLANGaDOTNET_CLI_UI_LANGUAGEpro zakázání této změny.