将字节压缩为可读字符串(非空或行尾)

时间:2012-09-30 21:04:27

标签: string compression

我正在寻找最合适的编码或方法来将字节压缩成字符,可以使用类似ReadLine的命令读取,该命令仅识别可读字符并终止于行尾char。实现它可能是一种常见的做法,但我对编码知之甚少。

目前,我输出的字节为十六进制字符串,所以我需要2个字节来表示1个字节。它运作良好,但速度很慢。例如:值为255的字节表示为“FF”。

我确定它可能要小3到4倍,尽管由于我输出MP3数据有限制,但我不知道如何。我应该只是压缩我的字符串还是会有太多的开销呢?

ASCII85是否包含随机空字节和EndOfLine,或者我对它安全吗?

1 个答案:

答案 0 :(得分:1)

不要压缩mp3文件,这些文件不会获得太多收益(或任何东西)。

我有点失望,因为我认为维基百科的文章非常明确地解释它只使用可打印的ASCII字符,所以你没有在Ascii85上阅读。所以,没有行结尾或空字节。它是高效的,转换也相当简单快捷 - 将数据拆分为4字节的整数;你可以通过重复地将int值除以85并使用模数+ 33的ASCII值将它们转换为五个Ascii85数字。

您还可以考虑使用Base64或UUEncode。这些非常受欢迎(例如用于电子邮件附件),因此您会发现许多图书馆正在准备这些文件。但它们效率较低。