Pergunta : Como comprimir uma corda em uma respresentação curta em ASP.NET using C# ou VB.NET?

Nós temos uma necessidade de comprimir uma corda em uma respresentação que seja mais curta do que a corda original então para decompress a.  Eu quis saber se há uma maneira de fazer isto em .NET para as cordas que são aproximadamente 200-500 caráteres (não extremamente por muito tempo, mas nós precisamos das comprimir para o uso em um URL/querystring). class= do

Resposta : Como comprimir uma corda em uma respresentação curta em ASP.NET using C# ou VB.NET?

Porque estes métodos da compressão conduzem aos dados binários, e você não pode passar bytes em um URL, os dados comprimidos precisam de ser codificados como uma corda Base64. Quando a compressão pôde reduzir o tamanho da corda, eu suspeito que a codificação Base64 é provável começ lhe uma corda maior do que essa você estava tentando comprimir no primeiro lugar - particular se sua corda é pela maior parte aleatória.

As séries de dados pequenas, por exemplo uma corda de 500 bytes, tendem a não comprimir bem e frequentemente resultado em um aumento no tamanho.

Que é contido em sua corda?

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
using o sistema;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication1
{
	programa da classe
	{
		principal vago da estática (args da corda [])
		{
			corda que longString = GetLongString (500);
			
			corda comprimida = StringCompressor.CompressString (longString);
			corda uncompressed = StringCompressor.DecompressString (comprimido);

			Console.WriteLine (“comprimento original da corda: {0} \ r \ comprimento nCompressed da corda: {1}”,
				longString.Length, comprimido. Comprimento);
			Console.ReadKey ();
		}

		corda de estática GetLongString (o int len)
		{
			Estreptococo de StringBuilder = StringBuilder novo ();
			Margem aleatória = aleatório novo (DateTime.Now.Millisecond);

			para (int i = 0; streamBytes < len=""> i = lista nova ();

			se (stream.CanSeek)
				córrego. Posição = 0;

			bytesRead do int = 0;
			fazer
			{
				bytesRead = córrego. Lido (o amortecedor, 0, buffer_size);
				se (bytesRead > 0)
					streamBytes.AddRange (amortecedor. Tomada (bytesRead));
			} quando (bytesRead > 0);

			streamBytes.ToArray do retorno ();
		}
	}
}
Outras soluções  
 
programming4us programming4us