2016-08-27 1 views
0

Я сжимаются строку в PHP с помощью следующей функцииДекомпрессия Andriod не работает, который сжат с использованием PHP

 ........................................... 
     $compressedStr= gzcompress($txt, 9); 
     ........................................... 

и отправить сжатые результаты с помощью QR-кода андроида. В android полученная строка была сжата в android, используя следующую функцию, но это не работает. Какой будет лучший способ сжать строку в php, а затем распаковать в java в android?

public static String DecompressString(String inputStr) throws Exception { 

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    DeflaterOutputStream dos = new DeflaterOutputStream(baos); 
    dos.write(inputStr.getBytes()); 
    dos.flush(); 
    dos.close(); 
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 
    InflaterInputStream iis = new InflaterInputStream(bais); 

    String result = ""; 
    byte[] buf = new byte[5]; 
    int rlen = -1; 
    while ((rlen = iis.read(buf)) != -1) { 
     result += new String(Arrays.copyOf(buf, rlen)); 
    } 

     return result; 
} 

ответ

0

документация не ясна, но, кажется, что InflaterInputStream вызывает в Inflater классе nowrap, поэтому он ожидает необработанный формат выкачать. gzcompress() поставляет обтекаемый zlib поток. Вы можете напрямую использовать класс Inflater, или gzdeflate() на PHP-конце.

Смежные вопросы