import ( "bytes" "io/ioutil" "golang.org/x/text/encoding/traditionalchinese" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" ) //convert GBK to UTF-8 func Decodegbk(s []byte) ([]byte, error) { I := bytes.NewReader(s) O := transform.NewReader(I, simplifiedchinese.GBK.NewDecoder()) d, e := ioutil.ReadAll(O) if e != nil { return nil, e } return d, nil } //convert BIG5 to UTF-8 func Decodebig5(s []byte) ([]byte, error) { I := bytes.NewReader(s) O := transform.NewReader(I, traditionalchinese.Big5.NewDecoder()) d, e := ioutil.ReadAll(O) if e != nil { return nil, e } return d, nil } //convert UTF-8 to BIG5 func Encodebig5(s []byte) ([]byte, error) { I := bytes.NewReader(s) O := transform.NewReader(I, traditionalchinese.Big5.NewEncoder()) d, e := ioutil.ReadAll(O) if e != nil { return nil, e } return d, nil }