首頁 > 後端開發 > Golang > 主體

為什麼 ANSI 顏色不顯示在我的 Windows 10 控制台中?

Barbara Streisand
發布: 2024-11-01 02:29:28
原創
601 人瀏覽過

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

在Windows 10 上啟用ANSI 顏色支援:持續的困境

在Windows 10 上,使用ANSI 轉義序列向控制台輸出添加顏色是一種方法相對較新的功能。然而,最近出現了一個特殊問題,即 ANSI 顏色無法在某些機器上正確顯示。

情況摘要:

使用者報告有一個應用程式在控制台突然停止工作。該應用程式在其他筆記型電腦上按預期工作,但在自己的 Windows 10 電腦 (v14393) 上失敗。

調查與故障排除:

  • 刪除 HKLMConsole 註冊表項事實證明,重新啟動是無效的。
  • 修改捷徑設定以確保它們不是罪魁禍首並沒有產生任何結果。
  • 在同一台電腦上以不同使用者身分執行應用程式仍然會導致失敗.

解決方案:

解決這個問題的關鍵在於Windows上啟用虛擬終端處理。此設定是在導致問題的更新中引入的。

要啟動虛擬終端處理,請將以下程式碼加入Go 應用程式中的init() 函數:

<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>
登入後複製

此程式碼修改控制台模式以啟用虛擬終端處理,確保正確解析和顯示ANSI 顏色轉義序列。

結論:

透過實作上述解決方案,問題無法在 Windows 10 上使用的 ANSI 顏色將會修復。透過啟用虛擬終端處理,您的應用程式可以再次在控制台中顯示豐富的顏色,無論系統或使用者設定如何。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!