Mengoutput Rentetan Unikod dengan Betul dalam Windows Consoles dengan Go
Apabila bekerja dengan executable Go yang mencetak rentetan UTF-8 yang mengandungi aksara khas dalam konsol Windows windows, anda mungkin menghadapi output rosak disebabkan pengekodan IBM850 lalai Windows. Ketakpadanan pengekodan ini boleh mengakibatkan aksara tidak boleh dibaca yang kelihatan bergegas.
Untuk memastikan output yang betul, kaedah yang mengendalikan rentetan Unicode perlu digunakan dengan betul. Satu pendekatan ialah menggunakan kaedah tidak berdokumen WriteConsoleW yang disediakan oleh kernel32.dll Windows.
Kod Go berikut menunjukkan cara mencetak rentetan Unicode dengan betul dalam konsol 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>
Dalam ini skrip:
Statistik akhir dicetak menggunakan kaedah printTotal.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Rentetan Unicode dengan Betul dalam Windows Consoles dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!