1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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
- }
|