Maison >développement back-end >Golang >Pourquoi les couleurs ANSI ne s'affichent-elles pas dans ma console Windows 10 ?

Pourquoi les couleurs ANSI ne s'affichent-elles pas dans ma console Windows 10 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-01 02:29:28675parcourir

Why Are ANSI Colors Not Displaying in My Windows 10 Console?

Activer la prise en charge des couleurs ANSI sur Windows 10 : un dilemme persistant

Sous Windows 10, l'ajout de couleurs à la sortie de la console à l'aide de séquences d'échappement ANSI est une solution fonctionnalité relativement récente. Cependant, un problème particulier est récemment apparu : les couleurs ANSI ne s'affichent pas correctement sur certaines machines.

Résumé de la situation :

Un utilisateur signale qu'une application affichant les couleurs ANSI dans la console a soudainement cessé de fonctionner. L'application fonctionne comme prévu sur d'autres ordinateurs portables, mais échoue sur leur propre ordinateur Windows 10 (v14393).

Enquête et dépannage :

  • Suppression de l'entrée de registre HKLMConsole et le redémarrage s'est avéré inefficace.
  • La modification des paramètres de raccourci pour s'assurer qu'ils ne sont pas responsables n'a donné aucun résultat.
  • L'exécution de l'application en tant qu'utilisateur différent sur la même machine entraîne toujours un échec. .

Solution :

La clé pour résoudre ce problème réside dans l'activation du traitement du terminal virtuel sous Windows. Ce paramètre a été introduit dans la mise à jour à l'origine du problème.

Pour activer le traitement du terminal virtuel, ajoutez le code suivant à la fonction init() de votre application Go :

<code class="go">import (
    "golang.org/x/sys/windows"
    "os"
)

// +build windows

func init() {
    stdout := windows.Handle(os.Stdout.Fd())
    var originalMode uint32

    windows.GetConsoleMode(stdout, &originalMode)
    windows.SetConsoleMode(stdout, originalMode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING)
}</code>

Ce code modifie le mode console pour activer le traitement du terminal virtuel, garantissant ainsi que les séquences d'échappement de couleurs ANSI sont analysées et affichées correctement.

Conclusion :

En implémentant la solution ci-dessus, le problème des couleurs ANSI ne fonctionnant pas sous Windows 10 seront corrigées. En activant le traitement du terminal virtuel, vos applications peuvent à nouveau afficher des couleurs riches dans la console, quels que soient les paramètres du système ou de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn