【问题标题】:Compress bytes into a readable string (no null or endofline)将字节压缩为可读字符串(无空值或 endofline)
【发布时间】:2012-09-30 21:04:27
【问题描述】:

我正在寻找最合适的编码或方法来将字节压缩为可以使用类似 ReadLine 的命令读取的字符,该命令仅识别可读字符并在行尾字符处终止。实现它可能有一种常见的做法,但我对编码了解不多。

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

我确信它可能会小 3 或 4 倍,尽管由于我正在输出 MP3 数据存在限制,但我不知道如何。我应该只是压缩我的字符串,否则开销会太大?

ASCII85 会包含随机空字节和 EndOfLine 还是我可以放心?

【问题讨论】:

标签: string compression


【解决方案1】:

不要压缩 mp3 文件,那样不会有太多(或任何东西)。

对于您在询问之前没有阅读Ascii85 感到有点失望,因为我认为维基百科的文章相当清楚地解释了它只使用可打印的 ASCII 字符;所以,没有行尾或空字节。它很高效,而且转换也相当简单快捷——将数据拆分为 4 字节整数;您将通过重复将 int 值除以 85 并取模 + 33 的 ASCII 值将这些转换为仅五个 Ascii85 数字。

您也可以考虑使用 Base64 或 UUEncode。这些是相当流行的(例如用于电子邮件附件),所以你会发现很多图书馆都在准备这些。但它们的效率较低。

【讨论】:

  • 抱歉,我应该阅读有关 Ascii85 的信息。我希望,一个长达 8 天的编码问题已经结束,所以我开始变得不那么有策略了。是的,我肯定会使用 Ascii85,因为我找到了一个可以放入我的 .Net 的 sn-p。
猜你喜欢
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多