我正在寻找一种算法,可以将某些字符串压缩为另一个字符串(即没有“ \ 0”或特殊控制字符),但是我在互联网上找不到任何内容。有这样的算法吗?它不一定必须特别高效,而只是基本内容。
显然,您要记住一些特定的字符集,并且您想将其用于原始字符串和压缩字符串。
标准压缩例程(例如gzip)对字节字符串起作用。
一种想法是采用现有代码(例如gzip的代码)并将其重写以使用您的字符集而不是字节。
另一种方法是在字符集中的字符串与任意字节字符串之间构造一对一映射,将原始字符串映射为字节字符串,使用标准压缩实用程序或函数压缩字节字符串,然后将结果映射回字符串使用您的字符集。(严格来说,您可以使用两个不同的映射。)
构造映射的一种方法是用假人和特殊的填充字符填充您的字符集,直到您有2 ^ k个不同的字符(对于k个字符)为止。那么您的字符中的每8个对应于k个字节(较短的字符串可以用填充字符填充)。