在Windows 10 上啟用ANSI 顏色支援:持續的困境
在Windows 10 上,使用ANSI 轉義序列向控制台輸出添加顏色是一種方法相對較新的功能。然而,最近出現了一個特殊問題,即 ANSI 顏色無法在某些機器上正確顯示。
情況摘要:
使用者報告有一個應用程式在控制台突然停止工作。該應用程式在其他筆記型電腦上按預期工作,但在自己的 Windows 10 電腦 (v14393) 上失敗。
調查與故障排除:
解決方案:
解決這個問題的關鍵在於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中文網其他相關文章!