docs: public static boolean decodeString(InputStream stream, List<String> lineArray) throws IOException {
  		// Read the complete file
  		byte[] completeBuffer = new byte[0];
  		final byte[] buffer = new byte[BUFFER_SIZE];
  		int read;
  
  		while ((read = stream.read(buffer)) > 0) {
  			final byte[] tmp = new byte[completeBuffer.length + read];
  			System.arraycopy(completeBuffer, 0, tmp, 0, completeBuffer.length);
  			System.arraycopy(buffer, 0, tmp, completeBuffer.length, read);
  			completeBuffer = tmp;
  		}
  
  		// Get the two default charsets
  		//Charset oem_us = Charset.forName("IBM437");
  		final Charset westEuropean = Charset.forName("ISO-8859-1"); //$NON-NLS-1$
  		final Charset defaultCharset = Charset.defaultCharset();
  
  		// Decode with the current charset
  		boolean ok = decodeString(new ByteArrayInputStream(completeBuffer), lineArray, defaultCharset);
  
  		// Decode with the default oem US charset
  		/*if ((!ok)&&(!default_charset.equals(oem_us))) {
      		ok = decodeString(new ByteArrayInputStream(complete_buffer),lineArray,oem_us);
      	}*/
  
  		// Decode with the default west european charset
  		if ((!ok) && (!defaultCharset.equals(westEuropean))) {
  			ok = decodeString(new ByteArrayInputStream(completeBuffer), lineArray, westEuropean);
  		}
  
  		// Decode until one of the available charset replied a value
  		if (!ok) {
  			for (final Entry<String, Charset> charset : Charset.availableCharsets().entrySet()) {
  				if (decodeString(new ByteArrayInputStream(completeBuffer), lineArray, charset.getValue())) {
  					return true;
  				}
  			}
  		}
  
  		return ok;
  	}