Maison >développement back-end >Golang >Comment puis-je convertir du texte non UTF-8 (par exemple, Windows-1256) en UTF-8 dans Go ?

Comment puis-je convertir du texte non UTF-8 (par exemple, Windows-1256) en UTF-8 dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 00:35:10417parcourir

How Can I Convert Non-UTF-8 Text (e.g., Windows-1256) to UTF-8 in Go?

Conversion d'encodage en Go : transformer le texte de non-UTF-8 en UTF-8

La conversion de texte d'un encodage à un autre , comme de Windows-1256 arabe à UTF-8, est une tâche courante dans le développement de logiciels. Dans Go, cela peut être accompli avec le package d'encodage.

Le package d'encodage prend en charge une large gamme d'encodages, y compris Windows-1256. Pour convertir du texte de Windows-1256 en UTF-8, vous pouvez utiliser le package charmap, qui fournit une option d'encodage Windows-1256.

Voici un exemple qui illustre le processus :

package main

import (
    "bytes"
    "fmt"
    "golang.org/x/text/encoding/charmap"
    "golang.org/x/text/transform"
)

func main() {
    // Declare a Windows-1256 decoder that will read from our input string.
    decoder := transform.NewReader(strings.NewReader("This is a Windows-1256 string."), charmap.Windows1256.NewDecoder())

    // Convert the string to UTF-8 by writing to a bytes buffer.
    var b bytes.Buffer
    if _, err := b.ReadFrom(decoder); err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(b.String())
}

Dans cet exemple, la fonction transform.NewReader est utilisée pour créer un décodeur qui lit à partir de la chaîne codée Windows-1256. Ce décodeur est ensuite utilisé pour convertir la chaîne en UTF-8, ce qui donne une chaîne de sortie codée en UTF-8 qui est imprimée sur la console.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn