Compress and decompress string in c#에 C#의 문자열 압축 용 게시물이 있습니다.GZipStream은 원본보다 텍스트를 크게 만듭니다
나 자신에 대해 동일한 코드를 구현했지만 반환 된 텍스트 내 거의 두 배 : O 나는이 같은 크기 87와 JSON에 그것을 시도했습니다
:
{ "G": "82f88ff5-4143-46ef-86cc-a19910f4a6b5는", "U"는 "df39e3c7-ffd3-4829-a9cd-27bfcbd4403a은"}
결과 168이다
H4sIAAAAAAAEAC2NUQ6DIBQE5yx8l0QFqfQCnqAHqKCXaHr3jsaQ3TyYfcuXwKpeamHi0Bf9YCaSGVW6psLua5QWmifykVbPyCDJ3gube4GHet + tXZZM7Xrj6d7Z3u/W8896dVVpd5rMbCaa3k1k25M88OMPcjDew64AAAA =
내가 ASCII로 유니 코드를 변경했지만 결과는 여전히 너무 큰 (128)
H4sIAAAAAAAEAA3KyxGAMAgFwF44y0w + JAEbsAILICSvCcfedc/70EUnaYEq0FiyVJa + wdoj2LNZThDvs9FB918Xqu0ag4H1Vy3GbrG4jImYSyRVp/cDp8EZE1cAAAA =
public static string Compress(this string s)
{
var bytes = Encoding.ASCII.GetBytes(s);
using (var msi = new MemoryStream(bytes))
using (var mso = new MemoryStream())
{
using (var gs = new GZipStream(mso, CompressionMode.Compress))
{
msi.CopyTo(gs);
}
return Convert.ToBase64String(mso.ToArray());
}
}
Base64로 변환하기 전에 바이트 수를 비교 했습니까? 내가 올바르게 기억하면 Base64가 각 6 비트 청크를 문자 https://en.wikipedia.org/wiki/Base64 – KMoussa
@ KMoussa에게 답장 해 주셔서 감사합니다. 내 코드를 추가했습니다 –
예, ToBase64를 사용하고 있지만 System.Text.Encoding.ASCII.GetString (byteArray)도 테스트했습니다. –