Maison > Article > développement back-end > Plusieurs méthodes d'encodage et de décodage couramment utilisées en golang
Lorsque nous devons convertir un format d'encodage en un autre format d'encodage, nous devons utiliser le transcodage. Dans le langage Go, l'opération de transcodage est très pratique. Vous pouvez utiliser le package d'encodage intégré pour terminer rapidement l'opération de transcodage.
Le package d'encodage en langage Go fournit de nombreuses méthodes d'encodage et de décodage couramment utilisées, telles que JSON, XML, Base64, Gob, etc. Il fournit également une prise en charge des jeux de caractères (charset), qui peut être utilisée pour résoudre des problèmes de caractères spéciaux tels que Caractères chinois tronqués.
Présentons plusieurs opérations de transcodage couramment utilisées :
1. Conversion du jeu de caractères
En langage Go, nous pouvons utiliser les sous-packages chinois simplifié et chinois traditionnel du package golang.org/x/text/encoding pour convertir entre le chinois simplifié et le chinois simplifié. Chinois traditionnel. Par exemple, nous pouvons convertir le chinois traditionnel en chinois simplifié :
import "golang.org/x/text/encoding/simplifiedchinese" import "golang.org/x/text/transform" func main() { // 将繁体中文转换为简体中文 str := "測試" input := []byte(str) output := make([]byte, len(str)) tr := simplifiedchinese.GBK.NewDecoder() _, _, err := tr.Transform(output, input, true) if err != nil { panic(err) } fmt.Println(string(output)) }
Dans le code, nous avons d'abord introduit le package encoding/simplifiedchinese, et utilisé la méthode NewDecoder() du jeu de caractères GBK pour créer un objet décodeur, puis utilisé le Méthode Transform() pour convertir le chinois traditionnel en chinois simplifié.
2. Codage Base64
Le codage Base64 est une méthode de codage de données binaires arbitraires en caractères ASCII. Dans le langage Go, nous pouvons utiliser le package encoding/base64 pour effectuer des opérations d'encodage et de décodage Base64. Par exemple, nous pouvons convertir une chaîne en codage Base64 :
import "encoding/base64" func main() { // 将字符串转换为Base64编码 str := "hello, world" base64Str := base64.StdEncoding.EncodeToString([]byte(str)) fmt.Println(base64Str) }
Dans le code, nous utilisons la méthode EncodeToString() de base64.StdEncoding pour convertir la chaîne str en codage Base64 en introduisant le package encoding/base64.
3. Encodage JSON
JavaScript Object Notation (JSON) est un format d'échange de données léger. En langage Go, nous pouvons utiliser le package encoding/json pour effectuer des opérations d'encodage et de décodage JSON. Par exemple, nous créons un objet de structure, puis l'encodons au format JSON et le sortons sur la console :
import "encoding/json" type User struct { Name string `json:"name"` Age int `json:"age"` Gender string `json:"gender"` } func main() { // 编码结构体为JSON格式 user := User{"Tom", 20, "male"} data, _ := json.Marshal(user) fmt.Println(string(data)) }
Dans le code, nous définissons une structure utilisateur et encodons la structure au format JSON, et enfin sortons le résultat encodé vers le console.
4. Encodage XML
eXtensible Markup Language (XML) est un langage de balisage extensible. Dans le langage Go, nous pouvons utiliser le package encoding/xml pour effectuer des opérations d'encodage et de décodage XML. Par exemple, nous créons un objet structure, puis l'encodons au format XML et le sortons sur la console :
import "encoding/xml" type User struct { Name string `xml:"name"` Age int `xml:"age"` Gender string `xml:"gender"` } func main() { // 编码结构体为XML格式 user := User{"Tom", 20, "male"} data, _ := xml.Marshal(user) fmt.Println(string(data)) }
Dans le code, nous définissons une structure User et l'encodons au format XML via le format de méthode xml.Marshal(), et enfin, affichez le résultat codé sur la console.
Les opérations de transcodage ci-dessus sont couramment utilisées. Grâce à ces méthodes, nous pouvons facilement effectuer des opérations telles que la conversion, le cryptage et le décryptage de l'encodage, et réaliser l'interopérabilité des données entre différents formats et encodages.
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!