Maison  >  Article  >  développement back-end  >  conversion d'encodage Golang

conversion d'encodage Golang

WBOY
WBOYoriginal
2023-05-21 19:48:371236parcourir

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.

  1. Connaissance de base de l'encodage

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.

  1. Conversion d'encodage dans golang

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)
}
  1. Résumé

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!

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