Bagikan melalui


Output konsol antarmuka baris perintah (CLI) menggunakan UTF-8

DOTNET_CLI_UI_LANGUAGE Jika variabel lingkungan atau VSLANG diatur, output konsol .NET CLI dan pengodean input berubah menjadi UTF-8, sehingga halaman kode juga dapat berubah menjadi UTF-8. Perilaku baru ini memungkinkan karakter dari bahasa yang ditetapkan oleh variabel lingkungan tersebut dirender dengan benar.

Perubahan ini hanya memengaruhi sistem operasi Windows (pengodean baik-baik saja pada platform lain). Selain itu, ini hanya berlaku untuk Windows 10 dan versi yang lebih baru di mana budaya UI yang ditetapkan oleh pengguna bukan bahasa Inggris.

Perilaku sebelumnya

Karakter dalam bahasa tertentu, termasuk Cina, Jerman, Jepang, dan Rusia, kadang-kadang akan ditampilkan sebagai karakter kacau atau seperti ? di konsol. Contohnya:

C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
  ???????????????...

Perilaku baru

Mulai dari .NET 7 (versi 7.0.3xx) dan .NET 8, karakter dirender dengan benar. Pengodean dan halaman kode berubah. Contohnya:

C:\>dotnet build
MSBuild version 17.3.0-preview[...] for .NET
  正在确定要还原的项目…

Versi Windows yang lebih lama dari Windows 10 1909 tidak sepenuhnya mendukung UTF-8 dan mungkin mengalami masalah setelah perubahan ini. (Mulai dari .NET 8 dan .NET 7.0.300 SDK, .NET SDK tidak lagi mengubah pengodean ke UTF-8 pada versi ini, secara default. Untuk memilih kembali menggunakan UTF-8 bahkan pada versi Windows 10 yang tidak mendukungnya, gunakan DOTNET_CLI_FORCE_UTF8_ENCODING variabel lingkungan.)

Selain itu, ada bug yang ada di mana SDK dapat memengaruhi pengodean perintah dan program lain yang disebut dalam prompt perintah yang sama setelah SDK selesai dieksekusi. Sekarang setelah SDK lebih sering mengubah pengodean, dampak bug ini dapat meningkat. Namun, bug diperbaiki di .NET 8 dan .NET 7.0.300 SDK. Untuk informasi selengkapnya, lihat SDK tidak lagi mengubah pengodean konsol setelah selesai.

Versi yang diperkenalkan

7.0.3xx .NET 8 Pratinjau 1

Jenis perubahan yang memutus kompatibilitas

Perubahan ini dapat memengaruhi kompatibilitas sumber dan kompatibilitas biner. Ini juga merupakan perubahan perilaku.

Alasan perubahan

Menggunakan .NET CLI dalam bahasa non-bahasa Inggris memberikan pengalaman yang buruk.

Pengembang yang belum menggunakan VSLANG variabel dan DOTNET_CLI_UI_LANGUAGE tidak terpengaruh. Dampaknya harus minimal, karena pengaturan bahasa ini tidak akan berfungsi dengan baik sejak awal karena karakter yang berantakan. Selain itu, hanya pengembang yang menggunakan Windows 10 atau yang lebih baru yang mungkin terpengaruh, yang sebagian besar kemungkinan menggunakan versi 1909 atau yang lebih baru.

Skenario lama sudah semakin kecil kemungkinan mendukung bahasa yang tidak kompatibel, jadi tidak mungkin Anda ingin menggunakan bahasa lain yang mungkin mengungkap masalah ini.

  • Jika Anda menggunakan versi windows 10 yang lebih lama, tingkatkan ke versi 1909 atau yang lebih baru.
  • Jika Anda ingin menggunakan konsol lama atau menghadapi masalah build atau masalah lainnya karena perubahan pengodean, hapus pengaturan VSLANG dan DOTNET_CLI_UI_LANGUAGE untuk menonaktifkan perubahan ini.

Lihat juga