使用Go 在Windows 控制台中正確輸出Unicode 字串
使用在Windows 控制台中列印包含特殊字元的UTF-8 字串的Go 執行檔時Windows 中,由於Windows 的預設IBM850 編碼,您可能會遇到損壞的輸出。這種編碼不匹配可能會導致無法讀取的字元出現混亂。
為了確保正確的輸出,有必要採用正確處理 Unicode 字串的方法。一種方法是利用 Windows 的 kernel32.dll 提供的未記錄的方法 WriteConsoleW。
以下Go 程式碼示範如何在Windows 控制台中正確列印Unicode 字串:
<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 控制台中正確輸出 Unicode 字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!