Как декодировать сжатую строку из PHP в Swift?

У меня есть текстовый файл сжатый с помощью функции zlib в php:

base64_encode(gzcompress('привет')) // "eJy7sP9iw4UdFzZd2HqxCQA6EAjD"

Теперь мне нужно прочитать этот файл в iOS приложении. Для этого я попытался использовать библиотеку https://github.com/mw99/DataCompression

let data = Data(base64Encoded: "eJy7sP9iw4UdFzZd2HqxCQA6EAjD")!
print(data.decompress(withAlgorithm: .zlib)) // nil

Но в консоле я получаю nil


Ответы (1 шт):

Автор решения: schmidt9

Вы использовали не тот метод из данной библиотеки для распаковки. У вас данные в php упакованы с помощью алгоритма zlib deflate (тыц), который нужно распаковывать с помощью метода unzip

let data = Data(base64Encoded: "eJy7sP9iw4UdFzZd2HqxCQA6EAjD")!
let deсompressedData = data.unzip()!
let str = String(data: deсompressedData, encoding: .utf8)
print(str) // Optional("привет")
→ Ссылка