github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/f/convert_encoding.go (about) 1 package f 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 7 "golang.org/x/net/html/charset" 8 "golang.org/x/text/encoding/simplifiedchinese" 9 "golang.org/x/text/transform" 10 ) 11 12 // GbkToUtf8 convert encoding simplified chinese text. 13 func GbkToUtf8(s []byte) ([]byte, error) { 14 reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewDecoder()) 15 d, e := ioutil.ReadAll(reader) 16 if e != nil { 17 return nil, e 18 } 19 return d, nil 20 } 21 22 // ToUtf8 convert encode simplified to utf-8. 23 func ToUtf8(s []byte, encode string) ([]byte, error) { 24 byteReader := bytes.NewReader(s) 25 reader, err := charset.NewReaderLabel(encode, byteReader) 26 if err != nil { 27 return nil, err 28 } 29 if dst, err := ioutil.ReadAll(reader); err != nil { 30 return nil, err 31 } else { 32 return dst, nil 33 } 34 }