Maison > développement back-end > Golang > Pourquoi mes couleurs ANSI ne fonctionnent-elles pas sous Windows 10 ?

Pourquoi mes couleurs ANSI ne fonctionnent-elles pas sous Windows 10 ?

Susan Sarandon
Libérer: 2024-10-28 16:58:02
original
414 Les gens l'ont consulté

Why Aren't My ANSI Colors Working on Windows 10?

Les couleurs Ansi ne fonctionnent pas sous Windows 10 : un correctif

Dans les développements récents, Windows 10 a introduit une console qui permet l'impression couleur via Séquences d'échappement Ansi. Cependant, certains utilisateurs ont rencontré un problème où ces couleurs ne s'affichent pas correctement sur leurs ordinateurs portables.

L'un de ces utilisateurs, utilisant un binaire sous Windows 10.0.14393, a observé que l'impression couleur Ansi fonctionnait parfaitement dans une application nodejs, mais pas dans leur propre application. Malgré la suppression de la clé de registre et du raccourci associés à la console et l'exécution du binaire en tant qu'utilisateur différent, le problème a persisté.

Solution : Activer le traitement du terminal virtuel

La clé La résolution de ce problème consiste à activer le traitement du terminal virtuel (VTP) sous Windows, ce qui est requis depuis une mise à jour récente. Les étapes suivantes peuvent être suivies :

  1. Créer un fichier d'initialisation (init_windows.go) :
    Ajoutez le code suivant à un fichier nommé init_windows.go :

    package main
    
    import (
        "os"
    
        "golang.org/x/sys/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)
    }
    Copier après la connexion
  2. Référencez le fichier dans votre fonction principale :
    Dans votre fichier Go principal, assurez-vous de référencer le fichier init_windows.go pour activer VTP avant d'effectuer la couleur opérations d'impression.

Remarque : Cette solution a été adaptée de ce fil de discussion : [https://github.com/sirupsen/logrus/issues/172#issuecomment -353724264] (https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264)

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal