docs: public static String getString(byte[] contentBytes, Charset charset, boolean isGetCharsetFromContent) throws IOException {
  		if (null == contentBytes) {
  			return null;
  		}
  
  		if (null == charset) {
  			charset = CharsetUtil.CHARSET_UTF_8;
  		}
  		String content = new String(contentBytes, charset);
  		if (isGetCharsetFromContent) {
  			final String charsetInContentStr = ReUtil.get(META_CHARSET_PATTERN, content, 1);
  			if (StrUtil.isNotBlank(charsetInContentStr)) {
  				Charset charsetInContent = null;
  				try {
  					charsetInContent = Charset.forName(charsetInContentStr);
  				} catch (Exception e) {
  					if (StrUtil.containsIgnoreCase(charsetInContentStr, "utf-8") || StrUtil.containsIgnoreCase(charsetInContentStr, "utf8")) {
  						charsetInContent = CharsetUtil.CHARSET_UTF_8;
  					} else if (StrUtil.containsIgnoreCase(charsetInContentStr, "gbk")) {
  						charsetInContent = CharsetUtil.CHARSET_GBK;
  					}
  					// ignore
  				}
  				if (null != charsetInContent && false == charset.equals(charsetInContent)) {
  					content = new String(contentBytes, charsetInContent);
  				}
  			}
  		}
  		return content;
  	}