我正在寻找一种通用算法,该算法在定义的字符集上对给定字符串进行编码/解码,该字符设置为/从字节数组中。它必须使用最小的空间。
我开始开发我的,这是一种从 Base'n' 到 Base 2 的算法,但我认为这样的东西一定已经开发出来了。
我需要使用已知的受限字符集以最小位数编码字符串。也许我应该使用 bzip2?
编辑:我的字符串长度最大为 160 个字符。如果需要,我可以填充它们。
Edit2:我必须知道最坏情况的位数。
byte[] encode(string charset, string value)
string decode(string charset, byte[] encodedValue)
用法:
string myString = "HELLO WORLD";
string charSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ "; // Base 27
byte[] encodedString = encode(charset, myString); // Base 27 -> Base 2
Debug.Assert(myString.Equals(decode(charset, encodedString))); // Base 2 -> Base 27