Rumah >pembangunan bahagian belakang >Golang >Beberapa kaedah pengekodan dan penyahkodan yang biasa digunakan dalam golang
Apabila kita perlu menukar satu format pengekodan kepada format pengekodan yang lain, kita perlu menggunakan transcoding. Dalam bahasa Go, operasi transcoding sangat mudah Anda boleh menggunakan pakej pengekodan terbina dalam untuk menyelesaikan operasi transcoding dengan cepat.
Pakej pengekodan dalam bahasa Go menyediakan banyak kaedah pengekodan dan penyahkodan yang biasa digunakan, seperti JSON, XML, Base64, Gob, dll. Ia juga menyediakan sokongan set aksara (charset), yang boleh digunakan untuk menyelesaikan bahasa Cina watak kacau, dsb. Isu watak istimewa.
Mari perkenalkan beberapa operasi transkod yang biasa digunakan:
1 Penukaran set aksara
Dalam bahasa Go, kita boleh menggunakan golang.org/x/ Sub-bahasa Cina mudah dan tradisional. pakej dalam pakej teks/pengekodan digunakan untuk menukar bahasa Cina mudah dan tradisional antara satu sama lain. Sebagai contoh, kita boleh menukar Cina Tradisional kepada Cina Mudah:
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)) }
Dalam kod, kami mula-mula memperkenalkan pakej pengekodan/simplifiedchinese dan mencipta objek penyahkod menggunakan kaedah NewDecoder() set aksara GBK, dan kemudian Tukar str Cina Tradisional kepada Bahasa Cina Ringkas melalui kaedah Transform().
2. Pengekodan Base64
Pengekodan Base64 ialah kaedah pengekodan sebarang data binari ke dalam aksara ASCII. Dalam bahasa Go, kami boleh menggunakan pakej pengekodan/base64 untuk melaksanakan operasi pengekodan dan penyahkodan Base64. Sebagai contoh, kita boleh menukar rentetan kepada pengekodan Base64:
import "encoding/base64" func main() { // 将字符串转换为Base64编码 str := "hello, world" base64Str := base64.StdEncoding.EncodeToString([]byte(str)) fmt.Println(base64Str) }
Dalam kod, kami menggunakan kaedah EncodeToString() base64.StdEncoding untuk menukar rentetan str kepada pengekodan Base64 dengan memperkenalkan pengekodan/base64 pakej .
3. Pengekodan JSON
Notasi Objek JavaScript (JSON) ialah format pertukaran data yang ringan dalam bahasa Go, kami boleh menggunakan pakej pengekodan/json untuk melaksanakan operasi pengekodan dan penyahkodan JSON. Sebagai contoh, kami mencipta objek struktur, kemudian mengekodnya ke dalam format JSON dan mengeluarkannya ke konsol:
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)) }
Dalam kod, kami mentakrifkan struktur Pengguna dan menyerahkannya kepada json.Marshal() The kaedah mengekod struktur ke dalam format JSON, dan akhirnya mengeluarkan hasil yang dikodkan ke konsol.
4. Pengekodan XML
Bahasa Penanda eXtensible (XML) ialah bahasa penanda yang boleh diperluaskan dalam bahasa Go, kami boleh menggunakan pakej pengekodan/xml untuk melaksanakan operasi pengekodan dan penyahkodan XML. Sebagai contoh, kami mencipta objek struktur, kemudian mengekodnya ke dalam format XML dan mengeluarkannya ke konsol:
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)) }
Dalam kod tersebut, kami mentakrifkan struktur Pengguna dan menyerahkannya kepada Kaedah xml.Marshal() mengekodnya ke dalam format XML, dan akhirnya mengeluarkan hasil yang dikodkan ke konsol.
Di atas adalah beberapa operasi transkoding yang biasa digunakan Melalui kaedah ini, kami boleh menyelesaikan operasi dengan mudah seperti penukaran pengekodan, penyulitan dan penyahsulitan serta mencapai kebolehoperasian data antara format dan pengekodan yang berbeza.
Atas ialah kandungan terperinci Beberapa kaedah pengekodan dan penyahkodan yang biasa digunakan dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!