title: Exception in thread "main" java.util.zip.ZipException: Not in GZIP format. when compressing file using ISO charset
body: <p>I'm trying in my program to Compress/Decompress data using GZIP streams and when using the charset "ISO-8859-1", everything working well but when changing the charset to "UTF-8", i'm getting the Error message "Exception in thread "main" java.util.zip.ZipException: Not in GZIP format". this is my code: </p>
  
  <pre><code>public static String compress(String str) throws IOException { 
         if (str == null || str.length() == 0) { 
             return str; 
         } 
         System.out.println("String length : " + str.length()); 
         ByteArrayOutputStream out = new ByteArrayOutputStream(); 
         GZIPOutputStream gzip = new GZIPOutputStream(out); 
         gzip.write(str.getBytes()); 
         gzip.close(); 
         String outStr = out.toString("UTF-8"); 
         System.out.println("Output String lenght : " + outStr.length()); 
         System.out.println("Output : " + outStr.toString()); 
         return outStr; 
  } 
  
  public static String decompress(String str) throws IOException { 
         if (str == null || str.length() == 0) { 
            return str; 
         } 
         System.out.println("Input String length : " + str.length()); 
         GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(str.getBytes("UTF-8"))); 
         BufferedReader bf = new BufferedReader(new InputStreamReader(gis, "UTF-8")); 
         String outStr = ""; 
         String line; 
         while ((line=bf.readLine())!=null) { 
               outStr += line; 
         } 
         System.out.println("Output String lenght : " + outStr.length()); 
         return outStr; 
  } 
  
  public static void main(String[] args) throws IOException { 
         String string = "my data"; 
         System.out.println("after compress:"); 
         String compressed = compress(string); 
         System.out.println(compressed); 
         System.out.println("after decompress:"); 
         String decomp = decompress(compressed); 
         System.out.println(decomp); 
  } 
  </code></pre>