Sortie correcte des chaînes Unicode dans les consoles Windows avec Go
Lorsque vous travaillez avec des exécutables Go qui impriment des chaînes UTF-8 contenant des caractères spéciaux dans la console Windows Windows, vous pouvez rencontrer une sortie mutilée en raison du codage IBM850 par défaut de Windows. Cette inadéquation d'encodage peut entraîner des caractères illisibles qui semblent brouillés.
Pour garantir une sortie correcte, il est nécessaire d'utiliser une méthode qui gère correctement les chaînes Unicode. Une approche consiste à utiliser la méthode non documentée WriteConsoleW fournie par le kernel32.dll de Windows.
Le code Go suivant montre comment imprimer correctement les chaînes Unicode dans une console 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>
Dans ce script :
Les statistiques finales sont imprimées en utilisant la méthode printTotal.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!