Partager via


L’encodage de la console ne reste pas UTF-8 après l'achèvement du processus.

Le bogue mentionné dans la section sur le changement cassant La sortie de la console CLI utilise UTF-8 concernant la modification par le kit SDK .NET de l’encodage de la console complète, a été résolu. L’encodage de la console ne reste plus UTF-8 après l’exécution d’une commande par le Kit de développement logiciel (SDK) .NET. Il est possible que les utilisateurs dépendent de ce comportement, c'est pourquoi il s'agit d'un changement perturbateur.

En outre, le Kit de développement logiciel (SDK) .NET ne modifie plus l’encodage en UTF-8 sur les versions antérieures de Windows 10 qui ne le prennent pas entièrement en charge.

Comportement précédent

  • Le Kit de développement logiciel (SDK) a modifié l’encodage d’un terminal après avoir exécuté une commande telle que dotnet build.
  • Le Kit de développement logiciel (SDK) a utilisé l’encodage UTF-8 pour afficher correctement les caractères non anglais, même sur les versions de Windows 10 qui ne prenaient pas officiellement en charge UTF-8. Le comportement n’a pas été défini sur ces versions.

Nouveau comportement

  • Le Kit de développement logiciel (SDK) ne modifie pas l’encodage du terminal après la sortie pour d’autres programmes.
  • Par défaut, le Kit de développement logiciel (SDK) n’utilise plus UTF-8 pour les versions de Windows qui ne le prennent pas en charge.

Version introduite

7.0.3xx .NET 8 Preview 3

Type de changement cassant

Cette modification peut affecter la compatibilité binaire. C’est aussi un changement comportemental.

Raison de la modification

Il y a eu un bogue existant dans lequel le Kit de développement logiciel (SDK) .NET a affecté l’encodage sur la console pour d’autres programmes. Il s’agit d’un bogue qui a été résolu, entraînant ce changement cassant.

Les versions antérieures de Windows 10 (autrement dit, les versions antérieures à la mise à jour de novembre 2019) ne prennent pas en charge UTF-8. Par conséquent, le comportement par défaut ne doit pas être d’utiliser l’encodage UTF-8. Au lieu de cela, un opt-in est maintenant disponible.

Si votre application doit modifier la page de codes sur Windows, elle peut exécuter un processus pour appeler la chcp commande. Votre application ne doit pas s’appuyer sur le Kit de développement logiciel (SDK) .NET pour modifier l’encodage.

Pour les anciennes versions de Windows 10 qui ne prennent pas officiellement en charge UTF-8 où vous souhaitez que le KIT SDK .NET continue à modifier l’encodage en UTF-8 pour les langues non anglaises, vous pouvez définir la variable DOTNET_CLI_FORCE_UTF8_ENCODING d’environnement sur true ou 1.

Voir aussi