Maison > développement back-end > Golang > le corps du texte

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

Patricia Arquette
Libérer: 2024-10-26 17:43:30
original
660 Les gens l'ont consulté

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

Les couleurs Ansi ne fonctionnent pas sous Windows 10 ?

Dans le domaine de Windows, la possibilité d'afficher les couleurs sur la console est une nouveauté relativement nouvelle. et fonctionnalité passionnante. Cependant, au milieu de cet enthousiasme, certains utilisateurs ont été confrontés à un problème déroutant : la sortie couleur attendue a soudainement disparu. Cet article vise à élucider la cause et à fournir une solution.

L'énigme des couleurs de la console Windows

Un de ces utilisateurs rencontre ce problème lors de l'exécution d'un programme qui utilise des échappements de couleurs ANSI. Ce qui est perplexe, c'est que le même binaire produit correctement les couleurs sur un autre ordinateur portable. Sur la machine concernée, la fenêtre de la console, bien qu'elle affiche correctement les couleurs lors du lancement depuis l'application Node.js, ne parvient pas à le faire pour les autres programmes. Cela suggère certaines incohérences sous-jacentes au niveau du système.

Le rôle du traitement du terminal virtuel

Pour approfondir la solution, nous devons d'abord comprendre le concept de traitement du terminal virtuel dans Fenêtres. Cette fonctionnalité, introduite dans une mise à jour, active des fonctionnalités de terminal avancées qui sont essentielles au rendu correct des couleurs ANSI. Malheureusement, il est désactivé par défaut.

Activation du traitement du terminal virtuel

Pour résoudre le problème, il est nécessaire d'activer le traitement du terminal virtuel sur votre machine Windows. Ceci peut être réalisé en ajoutant un fichier d'initialisation (par exemple, init_windows.go) qui définit cette option. L'exemple de code suivant montre comment procéder :

<code class="go">// +build windows

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)
}</code>
Copier après la connexion

En incorporant ce code dans votre programme, vous pouvez vous assurer que le traitement du terminal virtuel est activé, permettant à votre application d'afficher correctement les couleurs ANSI sous Windows 10.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!