diff --git a/device.go b/device.go index bad55ac..5bea219 100644 --- a/device.go +++ b/device.go @@ -53,7 +53,7 @@ type Channel struct { Certifiable int `xml:"Certifiable,omitempty"` ErrCode int `xml:"ErrCode,omitempty"` EndTime string `xml:"EndTime,omitempty"` - Secrecy int `xml:"Secrecy,omitempty"` + Secrecy string `xml:"Secrecy,omitempty"` IPAddress string `xml:"IPAddress,omitempty"` Port int `xml:"Port,omitempty"` Password string `xml:"Password,omitempty"` diff --git a/xml.go b/xml.go index b50ba8f..ba131a0 100644 --- a/xml.go +++ b/xml.go @@ -7,21 +7,11 @@ import ( "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" "io" - "io/ioutil" - "strings" ) func GbkToUtf8(s []byte) ([]byte, error) { reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewDecoder()) - - d, e := ioutil.ReadAll(reader) - - if e != nil { - - return nil, e - } - - return d, nil + return io.ReadAll(reader) } func DoDecodeXML(data []byte, message interface{}) error { @@ -34,16 +24,16 @@ func DoDecodeXML(data []byte, message interface{}) error { } func DecodeXML(data []byte, message interface{}) error { - uft8Data := []byte(strings.Replace(string(data), "GB2312", "UTF-8", 1)) - + //uft8Data := []byte(strings.Replace(string(data), "GB2312", "UTF-8", 1)) + uft8Data := data err := DoDecodeXML(uft8Data, message) if err != nil { - utf8, err := GbkToUtf8(uft8Data) + uft8Data, err = GbkToUtf8(uft8Data) if err != nil { return err } - err = DoDecodeXML(uft8Data, utf8) + err = DoDecodeXML(uft8Data, message) } return err