go — функциональность PHP gzdeflate / gzinflate на Golang

Мне нужно реализовать функции gzdeflate / gzinflate в go (уровень сжатия 9)

<?php $z = gzdeflate($str, 9); ?>

Моя текущая реализация Go выглядит следующим образом:

func gzdeflate(str string) string {
var b bytes.Buffer

w, _ := gzip.NewWriterLevel(&b, 9)
w.Write([]byte(str))
w.Close()
return b.String()
}

func gzinflate(str string) string {
b := bytes.NewReader([]byte(str))
r, _ := gzip.NewReader(b)
bb2 := new(bytes.Buffer)
_, _ = io.Copy(bb2, r)
r.Close()
byts := bb2.Bytes()
return string(byts)
}

Я получаю разные результаты

0

Решение

Тест не является ли результат сжатия идентичным или нет. Проверка состоит в том, приводит ли сжатие с последующей декомпрессией к тому же результату, с которого вы начали, независимо от того, где и как реализован компрессор или декомпрессор. Например. Вы должны быть в состоянии передать сжатые данные из Go в PHP или наоборот, и распаковка там точно даст исходный ввод.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]