github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/encoding/kmgGob/UrlBase64Marshal.go (about) 1 package kmgGob 2 3 import ( 4 "bytes" 5 "encoding/base64" 6 "encoding/gob" 7 ) 8 9 func UrlBase64Marshal(obj interface{}) (out []byte, err error) { 10 out1, err := Marshal(obj) 11 if err != nil { 12 return 13 } 14 out = make([]byte, base64.URLEncoding.EncodedLen(len(out1))) 15 base64.URLEncoding.Encode(out, out1) 16 return 17 } 18 19 func UrlBase64Unmarshal(data []byte, obj interface{}) (err error) { 20 data1 := make([]byte, base64.URLEncoding.DecodedLen(len(data))) 21 _, err = base64.URLEncoding.Decode(data1, data) 22 if err != nil { 23 return 24 } 25 b := bytes.NewBuffer(data1) 26 encoder := gob.NewDecoder(b) 27 err = encoder.Decode(obj) 28 return 29 }