Pytanie : Dlaczego sznurek w krótki przedstawicielstwo w ASP.NET using C# lub VB.NET?

My mieć potrzeba sznurek w przedstawicielstwo który być krótki the oryginalny sznurek wtedy decompress ono.  I chcieć jeżeli tam  być sposób jeżeli w .NET dla sznurek który być wokoło 200-500 charakter (niezwykle długi, ale my potrzebować dla use w URL/querystring).

Odpowiedź : Dlaczego sznurek w krótki przedstawicielstwo w ASP.NET using C# lub VB.NET?

Ponieważ te uciskowy metoda wynikać w binarny dane, i ty móc bajt w URL, the ściśnięty dane potrzeba szyfrować jako Base64 sznurek. Podczas Gdy the ściskanie można the rozmiar the sznurek, I podejrzewać the Base64 być prawdopodobny ty smyczkowy wielki the jeden ty próbować w the pierwszy miejsce - szczególnie jeżeli twój sznurek być w dużym stopniu przypadkowy.

Mały dane ustawiać, e.g 500 bajt smyczkowy, miewać skłonność dobrze i często w wzrost w rozmiar.

Sznurek zawierać w twój sznurek?

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

namespace ConsoleApplication1
{
	klasowy Program
	{
		statyczny kawitacyjny Główny (sznurek [] args)
		{
			smyczkowy longString = GetLongString (500);
			
			sznurek kompresować = StringCompressor.CompressString (longString);
			smyczkowy uncompressed = StringCompressor.DecompressString (kompresować);

			Console.WriteLine ("Oryginał smyczkowy długość: {(0)} \ r \ nCompressed smyczkowy długość: {(1)}",
				longString.Length, kompresować. Długość);
			Console.ReadKey ();
		}

		ładunek elektrostatyczny smyczkowy GetLongString (int len)
		{
			StringBuilder str = nowy StringBuilder ();
			Przypadkowy skraj = nowy Przypadkowy (DateTime.Now.Millisecond);

			dla (int i = (0); i < len=""> streamBytes = nowy Lista ();

			jeżeli (stream.CanSeek)
				strumień. Pozycja = (0);

			int bytesRead = (0);
			
			{
				bytesRead = strumień. Czytać (odbojnica, (0), buffer_size);
				jeżeli (bytesRead > (0))
					streamBytes.AddRange (odbojnica. Wp8lywy (bytesRead));
			} podczas gdy (bytesRead > (0));

			powrotny streamBytes.ToArray ();
		}
	}
}
Inne rozwiązania  
 
programming4us programming4us