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

Comment convertir du texte ANSI en UTF-8 dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 13:48:10788parcourir

How to Convert ANSI Text to UTF-8 in Go?

Conversion du texte ANSI en UTF-8 dans Go

Dans Go, toutes les chaînes sont stockées au format UTF-8. Cependant, vous pourriez rencontrer des situations dans lesquelles vous devrez convertir du texte ANSI, qui utilise un codage de caractères différent, en UTF-8. Voici comment y parvenir :

Selon la spécification du langage Go, toutes les chaînes sont traitées au format UTF-8 en interne. Une conversion explicite n’est donc pas nécessaire. Si vous disposez d'un tableau d'octets représentant du texte ANSI, vous pouvez simplement utiliser l'extrait suivant pour le convertir en chaîne Go :

import (
    "bytes"
    "unicode/utf8"
)

func convertANSItoUTF8(ansiBytes []byte) string {
    reader := bytes.NewReader(ansiBytes)
    decoder := utf8.RuneReader(reader)

    var utf8String []rune
    for {
        r, size, err := decoder.ReadRune()
        if err != nil {
            break
        }
        utf8String = append(utf8String, r)
    }

    return string(utf8String)
}

Cette fonction utilise la fonction utf8.RuneReader pour parcourir les octets ANSI et convertir les aux runes UTF-8. Les runes sont ensuite ajoutées à une tranche, qui est finalement convertie en chaîne UTF-8.

Remarque : Cette fonction suppose que l'entrée ANSI est valide. S'il y a des séquences invalides, le comportement de la fonction n'est pas défini.

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