Korrekte Ausgabe von Unicode-Zeichenfolgen in Windows-Konsolen mit Go
Beim Arbeiten mit ausführbaren Go-Dateien, die UTF-8-Zeichenfolgen mit Sonderzeichen in der Windows-Konsole ausgeben Windows kann es aufgrund der standardmäßigen IBM850-Kodierung von Windows zu einer fehlerhaften Ausgabe kommen. Diese nicht übereinstimmende Codierung kann dazu führen, dass unlesbare Zeichen verwürfelt erscheinen.
Um eine ordnungsgemäße Ausgabe sicherzustellen, ist es notwendig, eine Methode zu verwenden, die Unicode-Zeichenfolgen korrekt verarbeitet. Ein Ansatz besteht darin, die undokumentierte Methode WriteConsoleW zu verwenden, die von der Windows-Kernel32.dll bereitgestellt wird.
Der folgende Go-Code zeigt, wie Unicode-Zeichenfolgen korrekt in einer Windows-Konsole gedruckt werden:
<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>
Hier Skript:
Die endgültigen Statistiken werden mit gedruckt die printTotal-Methode.
Das obige ist der detaillierte Inhalt vonWie werden Unicode-Zeichenfolgen in Windows-Konsolen mit Go korrekt ausgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!