go语言中字符串编码默认为UFT8编码,如果要把GBK编码汉字转为UTF8编码,以下方法比较简单


先导入包 "golang.org/x/text/encoding/simplifiedchinese"


​func Utf8ToGbk(text string) string {

    r := bytes.NewReader([]byte(text))

    decoder := transform.NewReader(r, simplifiedchinese.GBK.NewDecoder()) //GB18030

    content, _ := ioutil.ReadAll(decoder)

    return string(content)

}​


​func GbkToUtf8(b []byte) []byte { 

    tfr := transform.NewReader(bytes.NewReader(b), simplifiedchinese.GBK.NewDecoder())

    d, e := ioutil.ReadAll(tfr)

    if e != nil {

        return nil

    }

    return d

}​

调用如下:

​    s := util.Utf8ToGbk("多可文档管理系统")

    fmt.Println(s)


    bts := util.GbkToUtf8([]byte(s))

    fmt.Println(string(bts))​