Heim >Backend-Entwicklung >Golang >Warum werden ANSI-Farben in meiner Windows 10-Konsole nicht angezeigt?

Warum werden ANSI-Farben in meiner Windows 10-Konsole nicht angezeigt?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 02:29:28674Durchsuche

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

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öschen des HKLMConsole-Registrierungseintrags und ein Neustart hat sich als wirkungslos erwiesen.
  • Das Ändern der Verknüpfungseinstellungen, um sicherzustellen, dass sie nicht der Übeltäter sind, hat zu keinen Ergebnissen geführt.
  • Das Ausführen der Anwendung als ein anderer Benutzer auf demselben Computer führt immer noch zu einem Fehler .

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn