這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang中,存在
"compress/zlib"
這個包,裡麵包含各壓縮解壓的各項設定,比如壓縮層級/壓縮速度。
比如 zlib包裡面的常量如下:
const ( NoCompression = flate.NoCompression //沒有壓縮 BestSpeed = flate.BestSpeed //壓縮速度 BestCompression = flate.BestCompression //壓縮率 DefaultCompression = flate.DefaultCompression//預設壓縮)
壓縮速度和壓縮率這兩個是一個相互矛盾的過程,這裡面的取捨還是需要各位去仔細甄別使用情境。
func main() { b := []byte(`china GO GO !!!的大蘇打`) fmt.Println(string(zlibUnress(zibpress(b))))}func zibpress(src []byte) []byte { //應該加上異常處理 b := new(bytes.Buffer) w := zlib.NewWriter(b) w.Write(src) w.Close() return b.Bytes()}func zlibUnress(src []byte) []byte { //應該加上異常處理 b := bytes.NewReader(src) r, _ := zlib.NewReader(b) undata, err := ioutil.ReadAll(r) if err != nil { return nil } defer r.Close() return undata}
而在python中,壓縮解壓代碼非常簡潔。
import zliba=zlib.compress("china GO GO !!!的大蘇打".encode('utf-8'))print(a)b=zlib.decompress(a)print(str(b,encoding='utf-8') )