Partage via


L’encodage de la console ne reste pas au format UTF-8 une fois l’opération terminée

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 au format UTF-8 après l’exécution d’une commande par le kit SDK .NET. Il est possible que les utilisateurs se soit fiés à ce comportement. Il s’agit donc d’un changement cassant.

En outre, le kit SDK .NET ne remplace plus l’encodage par le format 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 SDK a modifié l’encodage d’un terminal après l’exécution d’une commande comme dotnet build.
  • Le kit SDK a utilisé l’encodage UTF-8 pour afficher correctement des caractères non anglais, même sur les versions de Windows 10 qui ne prenaient pas officiellement en charge UTF-8. Le comportement n’était pas défini sur ces versions.

Nouveau comportement

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

Version introduite

7.0.3xx .NET 8 Préversion 3

Type de changement cassant

Ce changement peut affecter la compatibilité binaire. C’est aussi un changement de comportement.

Raison du changement

Un bogue existe où le kit SDK .NET affectait 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 (c’est-à-dire les versions antérieures à la mise à jour de novembre 2019) ne prenaient pas en charge l’encodage UTF-8. Par conséquent, le comportement par défaut ne doit pas être d’utiliser l’encodage UTF-8. Une option de consentement est désormais disponible à la place.

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

Pour les versions antérieures de Windows 10 qui ne prennent pas officiellement en charge l’encodage UTF-8 pour lesquelles vous souhaitez que le kit SDK .NET continue à modifier l’encodage en UTF-8 pour les langues autres que l’anglais, vous pouvez définir la variable d’environnement DOTNET_CLI_FORCE_UTF8_ENCODING sur true ou 1.

Voir aussi