Maison >développement back-end >Golang >Comment convertir du texte de Windows-1256 en UTF-8 dans Go ?

Comment convertir du texte de Windows-1256 en UTF-8 dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-29 16:43:18182parcourir

How to Convert Text from Windows-1256 to UTF-8 in Go?

Encodage de texte dans Go

Lorsque vous travaillez avec des données texte, il est souvent nécessaire d'effectuer une conversion entre différents encodages. UTF-8 est un encodage largement utilisé qui est capable de représenter un large éventail de caractères.

Question : Comment convertir le texte d'un encodage tel que Windows-1256 arabe en UTF- 8 en Go ?

Réponse :

Pour effectuer cette conversion, utilisez le package d’encodage disponible dans Go. De plus, le package golang.org/x/text/encoding/charmap prend en charge divers encodages, notamment Windows-1256.

Exemple :

L'extrait de code suivant montre comment encoder du texte du japonais UTF-8 vers ShiftJIS, puis le décoder en UTF-8 :

package main

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "strings"

    "golang.org/x/text/encoding/japanese"
    "golang.org/x/text/transform"
)

func main() {
    // Input string
    s := "今日は"
    fmt.Println(s)

    // Encode: Convert s from UTF-8 to ShiftJIS
    var b bytes.Buffer
    wInUTF8 := transform.NewWriter(&b, japanese.ShiftJIS.NewEncoder())
    wInUTF8.Write([]byte(s))
    wInUTF8.Close()
    encodedBytes := b.Bytes()
    fmt.Printf("%#v\n", encodedBytes)
    encS := string(encodedBytes)
    fmt.Println(encS)

    // Decode: Convert encodedBytes from ShiftJIS to UTF-8
    rInUTF8 := transform.NewReader(strings.NewReader(encS), japanese.ShiftJIS.NewDecoder())
    decodedBytes, _ := ioutil.ReadAll(rInUTF8)
    decodedString := string(decodedBytes)
    fmt.Println(decodedString)
}

Pour un exemple plus complet, reportez-vous au lien suivant : https://ja.stackoverflow.com/questions/6120.

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