Pergunta

string pode ZLIB-comprimido conter espaços em branco? Por espaços quero dizer '', \ n \ t.

Foi útil?

Solução

Sim; é apenas um fluxo de bytes. Qualquer valor de byte pode aparecer lá (incluindo zero, o que é mais provável de causar-lhe problemas do que caracteres em branco!)

Outras dicas

Qualquer byte pode aparecer em uma seqüência compresed-zlib.

Na verdade, para uma cadeia longa o suficiente devidamente compactado, qualquer byte (de 0 a 255) deve ter uma probabilidade mais ou menos igual, ou então a corda poderia ser ainda mais comprimida.

Você pode experimentar por si mesmo - por exemplo, usando 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 ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top