zlib压缩的字符串可以包含空格吗?

时间:2009-05-16 23:35:12

标签: compression zlib

zlib压缩的字符串可以包含空格吗?用空格我的意思是'',\ n,\ t。

2 个答案:

答案 0 :(得分:9)

任何字节都可以出现在zlib-compresed字符串中。

事实上,对于足够长的正确压缩字符串,任何字节(从0到255)应该具有或多或少的相等概率,否则字符串可以被进一步压缩。

您可以自己尝试 - 例如使用Python:

>>> z = open('/dev/urandom').read(1000000).encode('zlib') # compress a long string of junk
>>> [z.count(chr(i)) for i in range(256)] # number of occurrences of each byte
[3936, 3861, 3978, 3951, 3858, 3937, 3945, 3828, 3984, 3871, 3985, 
 3961, 3879, 3924, 3817, 3984, 3963, 3858, 4029, 3903, 3884, 3817, 
 ... yada ...

答案 1 :(得分:5)

是;它只是一个字节流。任何字节值都可以出现在那里(包括零,这比空白字符更容易引起问题!)

相关问题