Heim >Backend-Entwicklung >Golang >Warum werden ANSI-Farben in meiner Windows 10-Konsole nicht angezeigt?
Ansi-Farbunterstützung unter Windows 10 aktivieren: ein anhaltendes Dilemma
Unter Windows 10 ist das Hinzufügen von Farben zur Konsolenausgabe mithilfe von ANSI-Escape-Sequenzen ein Problem relativ neues Feature. Vor kurzem ist jedoch ein besonderes Problem aufgetreten, bei dem ANSI-Farben auf bestimmten Computern nicht korrekt angezeigt werden.
Situationsübersicht:
Ein Benutzer meldet, dass eine Anwendung ANSI-Farben anzeigt Die Konsole funktionierte plötzlich nicht mehr. Die App funktioniert auf anderen Laptops wie vorgesehen, schlägt jedoch auf ihrem eigenen Windows 10-Computer (v14393) fehl.
Untersuchung und Fehlerbehebung:
Lösung:
Der Schlüssel zur Lösung dieses Problems liegt in der Aktivierung der virtuellen Terminalverarbeitung unter Windows. Diese Einstellung wurde in dem Update eingeführt, das das Problem verursacht hat.
Um die virtuelle Terminalverarbeitung zu aktivieren, fügen Sie den folgenden Code zur Funktion init() in Ihrer Go-Anwendung hinzu:
<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>
Dieser Code Ändert den Konsolenmodus, um die Verarbeitung virtueller Terminals zu ermöglichen und sicherzustellen, dass ANSI-Farb-Escape-Sequenzen korrekt analysiert und angezeigt werden.
Schlussfolgerung:
Durch die Implementierung der oben genannten Lösung wird das Problem behoben Probleme mit ANSI-Farben, die unter Windows 10 nicht funktionieren, werden behoben. Durch die Aktivierung der virtuellen Terminalverarbeitung können Ihre Anwendungen unabhängig von den System- oder Benutzereinstellungen wieder satte Farben in der Konsole anzeigen.
Das obige ist der detaillierte Inhalt vonWarum werden ANSI-Farben in meiner Windows 10-Konsole nicht angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!