Questione : Come comprimere una stringa in una breve rappresentazione in ASP.NET using C# o VB.NET?

Abbiamo una necessità di comprimere una stringa in una rappresentazione che è più breve della stringa originale allora per decomprimerla.  Ho voluto sapere se ci è un senso fare questo in .NET per le stringhe che sono circa 200-500 caratteri (non estremamente lungamente, ma dobbiamo comprimerli per uso in un URL/querystring). class= del

Risposta : Come comprimere una stringa in una breve rappresentazione in ASP.NET using C# o VB.NET?

Poiché questi metodi di compressione provocano i dati binari e non potete passare i byte in un URL, i dati appiattiti devono essere messi come stringa Base64. Mentre la compressione potrebbe ridurre il formato della stringa, ritengo sospetto che la codifica Base64 è probabile ottenere voi una stringa più grande di quella voi stava provando a comprimere in primo luogo - specialmente se la vostra stringa è in gran parte casuale.

I piccoli insiemi di dati, per esempio una stringa da 500 byte, tendono a non comprimere bene e spesso risultato in un aumento nel formato.

Che cosa è contenuto nella vostra stringa?

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 il sistema;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication1
{
	programma del codice categoria
	{
		principale vuoto di elettricità statica (args della stringa [])
		{
			stringa che longString = GetLongString (500);
			
			stringa compressa = StringCompressor.CompressString (longString);
			stringa non compressa = StringCompressor.DecompressString (compresso);

			Console.WriteLine (“lunghezza originale della stringa: {0} \ r \ lunghezza nCompressed della stringa: {1}„,
				longString.Length, compresso. Lunghezza);
			Console.ReadKey ();
		}

		stringa statica GetLongString (int len)
		{
			Streptococco di StringBuilder = nuovo StringBuilder ();
			Bordo casuale = nuovo casuale (DateTime.Now.Millisecond);

			per (int i = 0; streamBytes < len=""> i = nuova lista ();

			se (stream.CanSeek)
				flusso. Posizione = 0;

			bytesRead di int = 0;
			fare
			{
				bytesRead = flusso. Colto (amplificatore, 0, buffer_size);
				se (bytesRead > 0)
					streamBytes.AddRange (amplificatore. Introito (bytesRead));
			} mentre (bytesRead > 0);

			streamBytes.ToArray di ritorno ();
		}
	}
}
Altre soluzioni  
 
programming4us programming4us