Golang 字符串编码格式设置:UTF-8、GBK、Base64、JSON、XML
在 Go 语言中,可以使用encoding包来设置字符串的编码格式。常用的编码格式包括 UTF-8、GBK 等。
首先,需要导入encoding包和相应的编码包,例如:
import (
"encoding/base64"
"encoding/json"
"encoding/xml"
"golang.org/x/text/encoding/simplifiedchinese"
"golang.org/x/text/transform"
)
然后,可以使用transform包来设置字符串的编码格式。例如,将字符串从 UTF-8 编码转换为 GBK 编码:
func ConvertToGBK(str string) (string, error) {
encoder := simplifiedchinese.GBK.NewEncoder()
result, _, err := transform.String(encoder, str)
if err != nil {
return "", err
}
return result, nil
}
类似地,可以使用transform包将字符串从其他编码格式转换为 UTF-8 编码。例如,将字符串从 GBK 编码转换为 UTF-8 编码:
func ConvertToUTF8(str string) (string, error) {
decoder := simplifiedchinese.GBK.NewDecoder()
result, _, err := transform.String(decoder, str)
if err != nil {
return "", err
}
return result, nil
}
除了使用transform包外,还可以使用base64包对字符串进行编码和解码。例如,将字符串进行 Base64 编码:
func Base64Encode(str string) string {
encoded := base64.StdEncoding.EncodeToString([]byte(str))
return encoded
}
将 Base64 编码的字符串进行解码:
func Base64Decode(encoded string) (string, error) {
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
return "", err
}
return string(decoded), nil
}
另外,还可以使用json包和xml包对字符串进行 JSON 和 XML 编码。例如,将结构体转换为 JSON 字符串:
type Person struct {
Name string `json:'name' `
Age int `json:'age' `
}
func ToJSON(person Person) (string, error) {
jsonBytes, err := json.Marshal(person)
if err != nil {
return "", err
}
return string(jsonBytes), nil
}
将 JSON 字符串转换为结构体:
func FromJSON(jsonStr string) (Person, error) {
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
return Person{}, err
}
return person, nil
}
类似地,可以使用xml包对字符串进行 XML 编码和解码。
原文地址: http://www.cveoy.top/t/topic/fxFC 著作权归作者所有。请勿转载和采集!