Heim  >  Artikel  >  Backend-Entwicklung  >  Warum funktionieren meine ANSI-Farben unter Windows 10 nicht?

Warum funktionieren meine ANSI-Farben unter Windows 10 nicht?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 16:58:02324Durchsuche

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

Ansi-Farben funktionieren unter Windows 10 nicht: Eine Lösung

In den jüngsten Entwicklungen hat Windows 10 eine Konsole eingeführt, die Farbdruck über ermöglicht Ansi-Escape-Sequenzen. Einige Benutzer sind jedoch auf ein Problem gestoßen, bei dem diese Farben auf ihren Laptops nicht korrekt angezeigt werden.

Ein solcher Benutzer, der eine Binärdatei unter Windows 10.0.14393 verwendete, stellte fest, dass der Ansi-Farbdruck in einer NodeJS-App jedoch einwandfrei funktionierte nicht in ihrer eigenen Anwendung. Obwohl der mit der Konsole verknüpfte Registrierungsschlüssel und die Verknüpfung gelöscht und die Binärdatei als ein anderer Benutzer ausgeführt wurden, blieb das Problem weiterhin bestehen.

Lösung: Virtuelle Terminalverarbeitung aktivieren

Der Schlüssel Die Lösung dieses Problems besteht darin, Virtual Terminal Processing (VTP) unter Windows zu aktivieren, was seit einem aktuellen Update erforderlich ist. Die folgenden Schritte können befolgt werden:

  1. Erstellen Sie eine Initialisierungsdatei (init_windows.go):
    Fügen Sie den folgenden Code zu einer Datei mit dem Namen init_windows.go hinzu:

    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)
    }
  2. Referenzieren Sie die Datei in Ihrer Hauptfunktion:
    Achten Sie in Ihrer Haupt-Go-Datei darauf, auf die Datei init_windows.go zu verweisen, um VTP zu aktivieren, bevor Sie die Farbe ausführen Druckvorgänge.

Hinweis: Diese Lösung wurde aus diesem Problemthread übernommen: [https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264] (https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264)

Das obige ist der detaillierte Inhalt vonWarum funktionieren meine ANSI-Farben unter Windows 10 nicht?. 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