Dans Go, la bibliothèque standard suppose le codage UTF-8 pour tous les fichiers texte. Toutefois, cela peut ne pas être le cas pour les fichiers codés dans d'autres jeux de caractères. Cet article explique comment lire des fichiers texte non UTF-8 dans Go à l'aide du package golang.org/x/text/encoding.
Le package golang.org/x/text/encoding fournit une interface pour les fichiers génériques. encodages de caractères pouvant être convertis vers et depuis UTF-8. Par exemple, le sous-paquet golang.org/x/text/encoding/simplifiedchinese fournit des encodeurs pour GB18030, GBK et HZ-GB2312.
Exemple : Lecture d'un fichier codé GBK
package main import ( "bufio" "fmt" "log" "os" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" ) func main() { const filename = "example_GBK_file" // Read UTF-8 from a GBK encoded file f, err := os.Open(filename) if err != nil { log.Fatal(err) } r := transform.NewReader(f, simplifiedchinese.GBK.NewDecoder()) // Read converted UTF-8 from `r` as needed sc := bufio.NewScanner(r) for sc.Scan() { fmt.Printf("Read line: %s\n", sc.Bytes()) } if err := sc.Err(); err != nil { log.Fatal(err) } if err = f.Close(); err != nil { log.Fatal(err) } }
Cet exemple utilise un transform.NewReader pour envelopper un objet os.File et effectuez un décodage à la volée de GBK vers UTF-8.
Notes supplémentaires :
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!