Я пытаюсь сжать строку ascii (base64) с помощью GZip, однако она выдает больше данных, чем меньше. Кто-нибудь может помочь?
Это старый проект, и я ограничен компиляторами и версиями Framework. Я пробовал MSBuild 2.0, 3.5 и 4.0 - все они дают одинаковые ошибочные результаты.
Imports System.IO.Compression
Private Function GZipString(ByVal asciiString As String) as Byte()
Debug.Print ("asciiString length : {0}", asciiString.Length )
Dim asciibytes As Byte() = Encoding.ASCII.GetBytes(asciiString)
Debug.Print ("asciibytes length : {0}", asciibytes.Length )
'GZip the string
Dim ms As New MemoryStream()
Dim gzips As New GZipStream(ms, CompressionMode.Compress)
gzips.Write(asciibytes, 0, asciibytes.Length)
gzips.Close()
GZipString = ms.ToArray
ms.Close()
Debug.Print ("compressedBytes length : {0}", GZipString.Length )
End Function
Вывод, который я получаю: -
- длина строки ascii: 3607
- длина ацибайт: 3607
- длина сжатого байта: 3985