Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengeluarkan Rentetan Unicode dengan Betul dalam Windows Consoles dengan Go?

Bagaimana untuk Mengeluarkan Rentetan Unicode dengan Betul dalam Windows Consoles dengan Go?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 23:32:29530semak imbas

How to Output Unicode Strings Correctly in Windows Consoles with Go?

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:

  • Saluran strCh digunakan untuk komunikasi.
  • Berbilang goroutin (dinyatakan oleh urutan) serentak menulis ke saluran.
  • Jurukira kadar r menulis kiraan operasi, manakala langkau menjejaki operasi tulis berlebihan yang dilangkau.
  • Gelung diteruskan sehingga mencapai tamat masa, dan kemudian menutup saluran untuk menandakan penamatan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn