Rumah >pembangunan bahagian belakang >Golang >Mengapa Warna ANSI Saya Tidak Berfungsi pada Windows 10?

Mengapa Warna ANSI Saya Tidak Berfungsi pada Windows 10?

Susan Sarandon
Susan Sarandonasal
2024-10-28 16:58:02409semak imbas

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

Ansi Colors Not Functioning on Windows 10: A Fix

Dalam perkembangan terkini, Windows 10 telah memperkenalkan konsol yang membenarkan pencetakan warna melalui Urutan melarikan diri Ansi. Walau bagaimanapun, sesetengah pengguna telah menghadapi masalah di mana warna ini gagal dipaparkan dengan betul pada komputer riba mereka.

Seorang pengguna sedemikian, menggunakan binari pada Windows 10.0.14393, mendapati bahawa pencetakan warna Ansi berfungsi dengan sempurna dalam apl nodejs tetapi bukan dalam aplikasi mereka sendiri. Walaupun telah memadamkan kunci pendaftaran dan pintasan yang dikaitkan dengan konsol dan menjalankan binari sebagai pengguna yang berbeza, isu ini berterusan.

Penyelesaian: Dayakan Pemprosesan Terminal Maya

Kuncinya untuk menyelesaikan isu ini terletak pada mendayakan Pemprosesan Terminal Maya (VTP) pada Windows, yang diperlukan sejak kemas kini terkini. Langkah berikut boleh diikuti:

  1. Buat Fail Permulaan (init_windows.go):
    Tambahkan kod berikut pada fail bernama init_windows.go:

    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. Rujuk Fail dalam Fungsi Utama Anda:
    Dalam fail Go utama anda, pastikan anda merujuk fail init_windows.go untuk mengaktifkan VTP sebelum melaksanakan warna operasi pencetakan.

Nota: Penyelesaian ini telah disesuaikan daripada urutan isu ini: [https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264] (https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264)

Atas ialah kandungan terperinci Mengapa Warna ANSI Saya Tidak Berfungsi pada Windows 10?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn