Sdílet prostřednictvím


Kódování konzoly po dokončení nezůstane UTF-8

Chyba uvedená ve výstupu konzoly ROZHRANÍ příkazového řádku používá chybu UTF-8 , kdy sada .NET SDK změnila kódování celé konzoly, byla opravena. Kódování konzoly už po spuštění příkazu sady .NET SDK zůstane UTF-8. Je možné, že se uživatelé na toto chování spoléhají, proto se jedná o zásadní změnu.

Sada .NET SDK navíc ve starších verzích Windows 10, které ho plně nepodporují, nemění kódování na UTF-8.

Předchozí chování

  • Sada SDK po spuštění příkazu, jako dotnet buildje například , změnila kódování terminálu.
  • Sada SDK použila kódování UTF-8 k správnému vykreslení neanglických znaků, a to i ve verzích Windows 10, které oficiálně nepodporují UTF-8. Chování bylo u těchto verzí nedefinováno.

Nové chování

  • Sada SDK po ukončení jiných programů nezmění kódování terminálu.
  • Sada SDK už ve výchozím nastavení nepoužívá UTF-8 pro verze Windows, které ji nepodporují.

Zavedená verze

7.0.3xx .NET 8 Preview 3

Typ zásadní změny

Tato změna může ovlivnit binární kompatibilitu. Jedná se také o změnu chování.

Důvod změny

Došlo k chybě, kdy sada .NET SDK ovlivnila kódování v konzole pro jiné programy. To byla chyba, která byla opravena, což vedlo k této zásadní změně.

Starší verze Windows 10 (tedy verze před aktualizací z listopadu 2019) nepodporují UTF-8, takže výchozí chování by nemělo používat kódování UTF-8. Místo toho je teď k dispozici výslovný souhlas.

Pokud vaše aplikace potřebuje změnit znakovou stránku ve Windows, může spustit proces pro vyvolání chcp příkazu. Vaše aplikace by neměla spoléhat na změnu kódování sadou .NET SDK.

Pro starší verze Windows 10, které oficiálně nepodporují UTF-8, kde chcete, aby sada .NET SDK pokračovala ve změně kódování na UTF-8 pro neanglické jazyky, můžete proměnnou DOTNET_CLI_FORCE_UTF8_ENCODING prostředí nastavit na true hodnotu nebo 1.

Viz také