在内存Ruby中压缩一个字符串

时间:2012-06-15 23:37:24

标签: ruby-on-rails ruby

有没有办法压缩字符串(使用gem或标准lib),以便我可以获得字符串的压缩结果?例如:

"hello world".zip #=> zipped version of string

此外,如果有人可以在他们的解决方案中包含解压缩,那么解压缩会很好。

2 个答案:

答案 0 :(得分:7)

您可以使用Zlib

>> require 'zlib'
=> true
>> s = "this is a long string with many many many many repetition"
=> "this is a long string with many many many many repetition"
>> s.size
=> 57
>> cs = Zlib.deflate(s)
=> "x\x9C+\xC9\xC8,V\x00\xA2D\x85\x9C\xFC\xBCt\x85\xE2\x92\xA2L U\x9EY\x92\xA1\x90\x9B\x98W\x89N\x14\xA5\x16\xA4\x96d\x96d\xE6\xE7\x01\x00\\?\x15P"
>> cs.size
=> 48
>> is = Zlib.inflate(cs)
=> "this is a long string with many many many many repetition"

答案 1 :(得分:1)

我想通过answer向您推荐这个不错的vas,它会详细说明rubyzip gem,正如您在documentation中看到的那样,它有输入和输出流对象,应该完全按照你想要的那样做。