>백엔드 개발 >Golang >Windows 10 콘솔에 ANSI 색상이 표시되지 않는 이유는 무엇입니까?

Windows 10 콘솔에 ANSI 색상이 표시되지 않는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-01 02:29:28683검색

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

Windows 10에서 ANSI 색상 지원 활성화: 지속적인 딜레마

Windows 10에서 ANSI 이스케이프 시퀀스를 사용하여 콘솔 출력에 색상을 추가하는 것은 비교적 최근의 기능입니다. 그러나 최근 특정 컴퓨터에서 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 색상이 해결됩니다. 가상 터미널 처리를 활성화하면 시스템이나 사용자 설정에 관계없이 애플리케이션이 다시 한 번 콘솔에 풍부한 색상을 표시할 수 있습니다.

위 내용은 Windows 10 콘솔에 ANSI 색상이 표시되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.