Konsol kodlaması tamamlandıktan sonra UTF-8 olarak kalmaz
CLI konsol çıkışında bahsedilen hata UTF-8 hatasını kullanıyor ve burada .NET SDK'sı konsolun tamamının kodlamasını değiştirdi, düzeltildi. .NET SDK bir komut yürütürken konsol kodlaması artık UTF-8 olarak kalmaz. Kullanıcıların bu davranışa güvenmesi mümkündür, bu nedenle bu hataya neden olan bir değişikliktir.
Buna ek olarak, .NET SDK'sı artık kodlamayı tam olarak desteklemeyen eski Windows 10 sürümlerinde UTF-8 olarak değiştirmiyor.
Önceki davranış
- SDK, gibi
dotnet build
bir komut çalıştırdıktan sonra terminalin kodlamasını değiştirdi. - SDK, UTF-8'i resmi olarak desteklemeyen Windows 10 sürümlerinde bile İngilizce olmayan karakterleri doğru şekilde işlemek için UTF-8 kodlamasını kullandı. Bu sürümlerde davranış tanımlanmamıştır.
Yeni davranış
- SDK, diğer programlar için çıkış sonrasında terminal kodlamasını değiştirmez.
- Varsayılan olarak, SDK artık onu desteklemeyen Windows sürümleri için UTF-8 kullanmaz.
Sürüm kullanıma sunulmuştur
7.0.3xx .NET 8 Önizleme 3
Hataya neden olan değişikliğin türü
Bu değişiklik ikili uyumluluğu etkileyebilir. Bu aynı zamanda davranışsal bir değişikliktir.
Değişiklik nedeni
.NET SDK'sının diğer programlar için konsoldaki kodlamayı etkilediği bir hata vardı. Bu hata düzeltildi ve bu hataya neden oldu.
Windows 10'un eski sürümleri (yani Kasım 2019 güncelleştirmesi öncesi sürümler) UTF-8'i desteklemediğinden varsayılan davranış UTF-8 kodlaması kullanmak olmamalıdır. Bunun yerine, artık bir kabul edilebilir.
Önerilen eylem
Uygulamanızın Windows'da kod sayfasını değiştirmesi gerekiyorsa, komutu çağırmak chcp
için bir işlem çalıştırabilir. Uygulamanızın kodlamayı değiştirmek için .NET SDK'sına güvenmemesi gerekir.
.NET SDK'sının İngilizce dışındaki diller için kodlamayı UTF-8 olarak değiştirmesini istediğiniz UTF-8'i resmi olarak desteklemeyen eski Windows 10 sürümleri için ortam değişkenini DOTNET_CLI_FORCE_UTF8_ENCODING
true
veya 1 olarak ayarlayabilirsiniz.