Files
plugin-gb28181/utils/string.go
2021-08-09 19:19:23 +08:00

42 lines
932 B
Go

package utils
import (
"bytes"
"encoding/json"
"encoding/xml"
"golang.org/x/net/html/charset"
"golang.org/x/text/encoding/simplifiedchinese"
"golang.org/x/text/transform"
"io/ioutil"
)
func ToJSONString(v interface{}) string {
b, _ := json.Marshal(v)
return string(b)
}
func ToPrettyString(v interface{}) string {
b, _ := json.MarshalIndent(v, "", " ")
return string(b)
}
func GbkToUtf8(s []byte) ([]byte, error) {
reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewDecoder())
d, e := ioutil.ReadAll(reader)
if e != nil {
return s, e
}
return d, nil
}
func DecodeGbk(v interface{}, body []byte) error {
bodyBytes, err := GbkToUtf8(body)
if err != nil {
return err
}
decoder := xml.NewDecoder(bytes.NewReader(bodyBytes))
decoder.CharsetReader = charset.NewReaderLabel
err = decoder.Decode(v)
return err
}