Aracılığıyla paylaş


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 buildbir 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.

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_ENCODINGtrue veya 1 olarak ayarlayabilirsiniz.

Ayrıca bkz.