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))