在 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 编码和解码。

Golang 字符串编码格式设置:UTF-8、GBK、Base64、JSON、XML

原文地址: http://www.cveoy.top/t/topic/fxFC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录