首頁  >  文章  >  後端開發  >  為什麼我的 ANSI 顏色在 Windows 10 上不起作用?

為什麼我的 ANSI 顏色在 Windows 10 上不起作用?

Susan Sarandon
Susan Sarandon原創
2024-10-28 16:58:02324瀏覽

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

Ansi Colors 在Windows 10 上不起作用:修復

在最近的開發中,Windows 10 引入了一個控制台,允許透過以下方式進行彩色列印Ansi 轉義序列。然而,一些用戶遇到了這些顏色無法在筆記型電腦上正確顯示的問題。

其中一位使用者在 Windows 10.0.14393 上使用二進位文件,觀察到 Ansi 彩色列印在 Nodejs 應用程式中完美運行,但不在他們自己的應用程式中。儘管刪除了與控制台關聯的註冊表項和快捷方式並以其他使用者身份運行二進位文件,問題仍然存在。

解決方案:啟用虛擬終端處理

金鑰解決此問題的方法是在Windows 上啟用虛擬終端處理(VTP),這是自最近更新以來必需的。可以依照以下步驟操作:

  1. 建立初始化檔案(init_windows.go):
    將下列程式碼加入名為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. 在主函數中引用該檔案:
    在主Go 檔案中,請務必在執行顏色之前引用init_windows.go 檔案來啟動VTP列印操作。

注意:此解決方案改編自此問題主題:[https://github.com/sirupsen/logrus/issues/172#issuecomment-353724264] (https: //github.com/sirupsen/logrus/issues/172#issuecomment-353724264)

以上是為什麼我的 ANSI 顏色在 Windows 10 上不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn