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 :
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!