|
|
1
4
压缩一个字符串,然后将压缩结果存储回另一个字符串是一个非常糟糕的主意。 按照惯例,字符串是字符序列。它们应该包含字母、标点、空格和类似的内容。任何人发现你用它们存储二进制数据都会对你生气,因为这是非常不寻常的。 如果要压缩字符串,请尽可能诚实,并将压缩数据存储在字节数组中。字节数组是通用容器,应该在其中存储任意数据。
回到你的主要问题。在Java中
因为您的所有字符都是ASCII码,所以每个字符都可以使用7位进行编码。在最前面再加一个位,说“这个字符串的其余部分仅限于ASCII”,最后得到一个简单的压缩方案,然后
(我刚刚忘记:自从Java 9,ASCII只有字符串以一种特殊的方式存储,每个字符只使用8位,而不是使用16位。因此,上面提到的压缩方案只在Java 8之前才有效。 当使用redis进行数据存储时,请记住,它将所有数据保存在RAM中,一旦无法分配更多的RAM,就会崩溃。(据我所知,这是大约5年前的事了。)因此,如果您已经可以估计Redis数据将超过几GB,那么最好选择另一个数据存储库。 |
|
|
stack programming · 如何将损坏的文本恢复为阿拉伯语 1 年前 |
|
|
FoolishMortal · 无法显示从基64字符串解码的特定图像 1 年前 |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 1 年前 |
|
|
dax · 运行长度编码给出错误的结果 1 年前 |
|
Ben · 内存中的Python GZIP在现有文件上 2 年前 |
|
|
GoodCat · 如何将这64行缩短4个字符? 2 年前 |