Puede zlib-comprimido de cadena contiene espacios en blanco?
-
22-08-2019 - |
Pregunta
Puede cadena de Zlib-comprimido contienen espacios en blanco? Por espacios en blanco que quiero decir '', \ n, \ t.
Solución
Sí; es sólo un flujo de bytes. Cualquier valor de byte puede aparecer en allí (incluyendo el cero, que es más probable que causen problemas que los espacios en blanco!)
Otros consejos
Cualquier byte puede aparecer en una cadena zlib-descomprimidos.
De hecho, para una cadena bastante tiempo adecuadamente comprimido, cualquier byte (de 0 a 255) debe tener una más o menos la misma probabilidad, o de lo contrario la cadena podría estar más comprimido.
Puede ensayar lo siguiente - por ejemplo 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow