Le langage Go est un langage de programmation moderne offrant efficacité, concurrence et portabilité. Dans les applications pratiques, il est souvent nécessaire de traiter des problèmes de conversion entre différents codages. Cet article présentera la solution de conversion d'encodage dans Golang.
Dans les ordinateurs, les caractères sont souvent représentés sous forme d'encodages numériques, tels que le code ASCII, GB2312, UTF-8, etc. Les relations de mappage de caractères entre les différents codages sont différentes, ce qui conduit également à leurs inconvénients et avantages respectifs.
Le code ASCII est une méthode de codage couramment utilisée. Il ne peut représenter que 128 caractères, y compris des lettres majuscules et minuscules, des chiffres et certains caractères spéciaux, ce qui limite son application en internationalisation. GB2312 est une méthode de codage de caractères chinois qui peut représenter environ 7 000 caractères chinois, mais elle n'est populaire qu'en Chine. De même, le codage UTF-8 est également une méthode de codage couramment utilisée. Il peut représenter des caractères dans le monde entier, mais son inconvénient est que lorsqu'il s'agit de langues d'Asie de l'Est, son nombre d'octets sera supérieur à celui du GB2312 ou du GB18030.
Par conséquent, il est nécessaire de convertir entre différents encodages afin d'être utilisé dans les scénarios correspondants.
La bibliothèque standard de golang fournit des packages d'encodage et Unicode, qui sont utilisés respectivement pour gérer les problèmes liés à l'encodage et les problèmes liés aux points de code Unicode.
Dans Golang, les caractères sont représentés sous forme de types de runes et les chaînes sont composées d'une série de types de runes. Ce qui suit présentera les fonctions de conversion d'encodage couramment utilisées et des exemples en Golang.
2.1 Fonction de conversion d'encodage dans Golang
2.1.1 bytes package
bytes package fournit certaines fonctions de lecture et d'écriture de données binaires, dont certaines sont spécifiquement utilisées pour analyser et sérialiser des chaînes.
Fonction de nom de fonction
func ToUpperSpecial convertit la chaîne en majuscules, prend en charge les paramètres locaux personnalisés
func ToLowerSpecial convertit la chaîne en minuscules, prend en charge les paramètres régionaux personnalisés
func ToTitleSpecial convertit la chaîne au format de titre, prend en charge la personnalisation Locale
func ToUpper Convert la chaîne en majuscule
func ToLower Convertit la chaîne en minuscule
func ToTitle Convertit la chaîne au format titre
func Title Convertit la chaîne entière au format titre
func TrimSpace Supprime les caractères Espaces au début et à la fin de la chaîne
func Trim Supprime les caractères spécifiés au début et à la fin de la chaîne
func TrimFunc Supprime la fonction spécifiée au début et à la fin de la chaîne
func TrimLeftFunc Supprime la fonction spécifiée sur le côté gauche de la chaîne
func TrimRightFunc Supprime la fonction spécifiée sur le côté droit de la chaîne
func HasPrefix Détermine si la chaîne contient le préfixe spécifié
func HasSuffix Détermine si la chaîne contient le suffixe spécifié
func Index Renvoie la position de la première occurrence de la sous-chaîne spécifiée dans la chaîne
func LastIndex Renvoie la dernière occurrence de la sous-chaîne spécifiée dans la chaîne La position de la chaîne
func IndexFunc Renvoie la position du premier caractère qui remplit les conditions spécifiées dans la chaîne
func LastIndexFunc Renvoie la position de le dernier caractère qui remplit les conditions spécifiées dans la chaîne
func IndexByte Renvoie la première position dans la chaîne La position où le caractère spécifié apparaît
func LastIndexByte Renvoie la position où le caractère spécifié apparaît en dernier dans la chaîne
func Count Renvoie le nombre de fois que la sous-chaîne spécifiée apparaît dans la chaîne
func Replace Remplace la sous-chaîne spécifiée dans la chaîne par une autre chaîne
func ReplaceAll Remplace toutes les sous-chaînes spécifiées dans la chaîne par une autre chaîne
func Split Divise la chaîne en tranches selon le délimiteur spécifié
func SplitN Divisez la chaîne en tranches selon le délimiteur spécifié, jusqu'à Split N fois
func SplitAfter Divisez la chaîne en tranches selon le suffixe spécifié, le suffixe est inclus dans chaque sous-chaîne
func SplitAfterN Divise la chaîne en tranches selon le suffixe spécifié, le suffixe est inclus dans chaque sous-chaîne, divisé au plus N fois
func Join fusionne les tranches de chaîne en une chaîne selon la séparation spécifiée
2.1.2 package d'encodage
Le package d'encodage fournit une série de fonctions pour encoder et décoder différentes méthodes d'encodage de caractères, telles que UTF-8, GB2312, etc.
Nom de la fonction Fonction
func Decode Décode de la tranche d'octets d'encodage spécifiée vers une tranche de rune au format UTF-8
func DecodeRune Décode de la tranche d'octets d'encodage spécifiée vers une seule rune
func DecodeLastRune Décode à partir de l'octet d'encodage spécifié Décoder la dernière rune de la tranche
func Encode Convertir la tranche de rune en une tranche d'octets de l'encodage spécifié
func RuneCount Calculer le nombre de runes dans la tranche de rune
func Runes Décoder la tranche d'octets d'encodage spécifiée en une tranche de rune
2.1.3 Package Unicode
Le package Unicode fournit certaines fonctions pour déterminer si un caractère est un chiffre, une lettre, etc.
Nom de la fonction Function
func IsDigit Détermine si le caractère est un nombre
func IsLetter Détermine si le caractère est une lettre
func IsLower Détermine si le caractère est une lettre minuscule
func IsUpper Détermine si le caractère est une lettre majuscule
func IsPunct Détermine si le caractère est un signe de ponctuation
func IsGraphic Détermine si le caractère est un caractère graphique visuel
2.2 Exemple de conversion de code dans Golang
Voici quelques exemples de conversion d'encodage dans Golang :
2.2.1 Encodage UTF-8 vers GB2312
Exemple 1 : Utilisez le package d'encodage de Golang pour convertir entre l'encodage UTF-8 et l'encodage GB2312.
package main import ( "fmt" "github.com/axgle/mahonia" ) func main() { str := "你好,世界!" enc := mahonia.NewEncoder("GB2312") newStr := enc.ConvertString(str) fmt.Println(newStr) }
2.2.2 Convertir l'encodage GB2312 en UTF-8
Exemple 2 : utilisez le package d'encodage de Golang pour convertir entre l'encodage GB2312 et l'encodage UTF-8.
package main import ( "fmt" "github.com/axgle/mahonia" ) func main() { str := "你好,世界!" dec := mahonia.NewDecoder("GB2312") newStr := dec.ConvertString(str) fmt.Println(newStr) }
Dans les applications pratiques, le problème de conversion d'encodage est un problème courant. Cet article présente la solution de conversion d'encodage dans Golang, qui utilise principalement les fonctions fournies par les packages d'encodage et Unicode pour réaliser la conversion entre différents encodages. En apprenant ces contenus, nous devrions avoir une compréhension plus profonde et une capacité pratique plus précise pour coder les opérations de conversion en golang.
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!