Go를 사용하여 Windows 콘솔에서 유니코드 문자열을 올바르게 출력
Windows 콘솔에서 특수 문자가 포함된 UTF-8 문자열을 인쇄하는 Go 실행 파일로 작업하는 경우 Windows의 경우 Windows의 기본 IBM850 인코딩으로 인해 잘못된 출력이 발생할 수 있습니다. 이러한 인코딩 불일치로 인해 읽을 수 없는 문자가 뒤섞여 나타날 수 있습니다.
올바른 출력을 보장하려면 유니코드 문자열을 올바르게 처리하는 방법을 사용해야 합니다. 한 가지 접근 방식은 Windows의 kernel32.dll에서 제공하는 문서화되지 않은 메서드 WriteConsoleW를 활용하는 것입니다.
다음 Go 코드는 Windows 콘솔에서 유니코드 문자열을 올바르게 인쇄하는 방법을 보여줍니다.
<code class="go">import ( "sync/atomic" "time" ) func main() { handler := func(text []byte) { var prev []byte for { select { case s := <-strCh: if eq(prev, s) { atomic.AddUint64(&skips, 1) continue } time.Sleep(delay) prev = s r.add(s) default: time.Sleep(pollingDelay) } } } for i := 0; i < threads; i++ { go handler(data) } time.Sleep(timeout + 2e9) close(strCh) time.Sleep(2e9) m.printTotal(&report) }</code>
여기서 script:
최종 통계는 다음을 사용하여 인쇄됩니다. printTotal 메소드.
위 내용은 Go를 사용하여 Windows 콘솔에서 유니코드 문자열을 올바르게 출력하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!