code: @Override
      public String decode(final byte[] bytes) {
          if (bytes == null) {
              return null;
          }
          StringBuilder buffer = new StringBuilder(estimateDecodeCharLength(bytes));
          decode(bytes, buffer);
          return buffer.toString();
      }
docs: Default implementation that simply returns a String by creating a new
  StringBuffer, appending to it, and then returning a new String.  NOTE:
  This method is NOT efficient since it requires a double copy of a new
  String.  Some charsets will override this default implementation to
  provide a more efficient impl.