This article presents two methods to compress and decompress strings using
After converting code from VB.NET 1.1 to C#.NET 3.5, I needed to change some code using a third party zip class to GZipStream. Code samples found on the web or on VS help where presenting solutions dealing with FileStream but in this case, a string is given as an input parameter.
So the little challenge was to go from a string to a byte array (byte) and vice versa without losing a char nor changing its encoding because I ended up finding that
GetString() previously used in the VB code was not acting properly, resulting in a loss of characters. Plus the
Flush() method on GZipStream with the compression option doesn't flush everything...
So as I found no method transforming a string into a byte and vice versa without involving encoding specifications, I ended up with a loop and a cast. If you have a better idea, please tell me so.
And I found out, if you only flush a GZipStream instance and retrieve the data from the underlying stream without closing this GZipStream instance, you miss part of the data.
Compress/Zip a string: