C # to swift4 я пытаюсь использовать библиотеку gZIP в swift, но не совпадает со строкой сжатия с C # - PullRequest
0 голосов
/ 03 октября 2019

Следующий метод используется для сжатия строки в c #. Я пытаюсь с помощью swift использовать библиотеку GzipSwift, но она не соответствует, пожалуйста, помогите:

Вот код c #:

Сжать строкувведите текст

public static string CompressString(string text)
{
    byte[] buffer = Encoding.UTF8.GetBytes(text);
    var memoryStream = new MemoryStream();
    using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress, true))
    {
        gZipStream.Write(buffer, 0, buffer.Length);
    }

    memoryStream.Position = 0;
    var compressedData = new byte[memoryStream.Length];
    memoryStream.Read(compressedData, 0, compressedData.Length);
    var gZipBuffer = new byte[compressedData.Length + 4];
    Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length);
    Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gZipBuffer, 0, 4);
    return Convert.ToBase64String(gZipBuffer);
}

Вот код быстрого доступа:

let compressedData: Data = try! data.gzipped()           
...